diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/.DS_Store differ diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9979630..2ff4586 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,14 +15,18 @@ jobs: steps: - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + version: 9 + - name: Setup Node.js uses: actions/setup-node@v4 with: - cache: 'yarn' + cache: 'pnpm' node-version-file: '.nvmrc' - name: Install Dependencies - run: yarn install --frozen-lockfile --immutable + run: pnpm install --frozen-lockfile - name: Run Tests - run: yarn test + run: pnpm test diff --git a/.gitignore b/.gitignore index 6c3b4af..c6b59e5 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,6 @@ node_modules dist # local deployments -/deployments/hardhat +/ignition/deployments/chain-31337 + +/publish diff --git a/.openzeppelin/goerli.json b/.openzeppelin/goerli.json deleted file mode 100644 index b939d83..0000000 --- a/.openzeppelin/goerli.json +++ /dev/null @@ -1,260 +0,0 @@ -{ - "manifestVersion": "3.2", - "proxies": [ - { - "address": "0xB015ac4d088B8693f18e16b820937875FB5703f6", - "txHash": "0x77a4514cf87758e1e0db17d3f2a28d395288878910e5605fdcb336d0dff8deda", - "kind": "transparent" - }, - { - "address": "0x59f13C12d82aD380CB55504bD30eA08226f65978", - "txHash": "0xd60f14f81ce0f4919da848d6c324638302adf60af5af9ca0d1324d1f4427ed5a", - "kind": "transparent" - } - ], - "impls": { - "6021586a0cc3fc7412313542e40c583f15745207ef26e7cf61ca1d7833ad694a": { - "address": "0x30299270753A6D6d049890B96B7B9dbC1546E866", - "txHash": "0xee5596bb7a063bfa347ce71dd736e6fa9c3c9c3d920efdbd521cbd6972c31a4a", - "layout": { - "solcVersion": "0.8.20", - "storage": [ - { - "label": "registry", - "offset": 0, - "slot": "0", - "type": "t_contract(Registry)415", - "contract": "SCI", - "src": "contracts/SCI.sol:10" - }, - { - "label": "nameHashUtils", - "offset": 0, - "slot": "1", - "type": "t_contract(NameHash)788", - "contract": "SCI", - "src": "contracts/SCI.sol:11" - } - ], - "types": { - "t_bool": { - "label": "bool", - "numberOfBytes": "1" - }, - "t_struct(InitializableStorage)10_storage": { - "label": "struct Initializable.InitializableStorage", - "members": [ - { - "label": "_initialized", - "type": "t_uint64", - "offset": 0, - "slot": "0" - }, - { - "label": "_initializing", - "type": "t_bool", - "offset": 8, - "slot": "0" - } - ], - "numberOfBytes": "32" - }, - "t_uint64": { - "label": "uint64", - "numberOfBytes": "8" - }, - "t_contract(NameHash)788": { - "label": "contract NameHash", - "numberOfBytes": "20" - }, - "t_contract(Registry)415": { - "label": "contract Registry", - "numberOfBytes": "20" - } - }, - "namespaces": { - "erc7201:openzeppelin.storage.Initializable": [ - { - "contract": "Initializable", - "label": "_initialized", - "type": "t_uint64", - "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:69", - "offset": 0, - "slot": "0" - }, - { - "contract": "Initializable", - "label": "_initializing", - "type": "t_bool", - "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:73", - "offset": 8, - "slot": "0" - } - ] - } - } - }, - "f1be7026ecb284285760fef19877db756e6f3bbf3054aba6635c27ce29c8092d": { - "address": "0xb2D25b123D7D7FDE2bAF2B8246DE826ECB38d540", - "txHash": "0x55c2800bc8a5932b7b092c5945221dccaefd9ba48d34f043853674efa11d7b4f", - "layout": { - "solcVersion": "0.8.20", - "storage": [ - { - "label": "registry", - "offset": 0, - "slot": "0", - "type": "t_contract(Registry)415", - "contract": "SCI", - "src": "contracts/SCI.sol:10" - }, - { - "label": "nameHashUtils", - "offset": 0, - "slot": "1", - "type": "t_contract(NameHash)813", - "contract": "SCI", - "src": "contracts/SCI.sol:11" - } - ], - "types": { - "t_bool": { - "label": "bool", - "numberOfBytes": "1" - }, - "t_struct(InitializableStorage)10_storage": { - "label": "struct Initializable.InitializableStorage", - "members": [ - { - "label": "_initialized", - "type": "t_uint64", - "offset": 0, - "slot": "0" - }, - { - "label": "_initializing", - "type": "t_bool", - "offset": 8, - "slot": "0" - } - ], - "numberOfBytes": "32" - }, - "t_uint64": { - "label": "uint64", - "numberOfBytes": "8" - }, - "t_contract(NameHash)813": { - "label": "contract NameHash", - "numberOfBytes": "20" - }, - "t_contract(Registry)415": { - "label": "contract Registry", - "numberOfBytes": "20" - } - }, - "namespaces": { - "erc7201:openzeppelin.storage.Initializable": [ - { - "contract": "Initializable", - "label": "_initialized", - "type": "t_uint64", - "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:69", - "offset": 0, - "slot": "0" - }, - { - "contract": "Initializable", - "label": "_initializing", - "type": "t_bool", - "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:73", - "offset": 8, - "slot": "0" - } - ] - } - } - }, - "8a4d60d24004b55a29542ff2a651508c025b86389f29025ea884e70b8ed2b723": { - "address": "0xaE50B03c367D77a36f695dA5bBF5B85AF84DdE5F", - "txHash": "0xd86fdbc7ab098dc85d291d84301d88899acc237bc01f39f71aa50df108d2f4a2", - "layout": { - "solcVersion": "0.8.20", - "storage": [ - { - "label": "registry", - "offset": 0, - "slot": "0", - "type": "t_contract(IRegistry)5510", - "contract": "SCI", - "src": "contracts/SCI.sol:10" - }, - { - "label": "nameHashUtils", - "offset": 0, - "slot": "1", - "type": "t_contract(INameHash)5263", - "contract": "SCI", - "src": "contracts/SCI.sol:11" - } - ], - "types": { - "t_bool": { - "label": "bool", - "numberOfBytes": "1" - }, - "t_struct(InitializableStorage)110_storage": { - "label": "struct Initializable.InitializableStorage", - "members": [ - { - "label": "_initialized", - "type": "t_uint64", - "offset": 0, - "slot": "0" - }, - { - "label": "_initializing", - "type": "t_bool", - "offset": 8, - "slot": "0" - } - ], - "numberOfBytes": "32" - }, - "t_uint64": { - "label": "uint64", - "numberOfBytes": "8" - }, - "t_contract(INameHash)5263": { - "label": "contract INameHash", - "numberOfBytes": "20" - }, - "t_contract(IRegistry)5510": { - "label": "contract IRegistry", - "numberOfBytes": "20" - } - }, - "namespaces": { - "erc7201:openzeppelin.storage.Initializable": [ - { - "contract": "Initializable", - "label": "_initialized", - "type": "t_uint64", - "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:69", - "offset": 0, - "slot": "0" - }, - { - "contract": "Initializable", - "label": "_initializing", - "type": "t_bool", - "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:73", - "offset": 8, - "slot": "0" - } - ] - } - } - } - } -} diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..b785f64 --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +ignition/deployments/ diff --git a/.solhint.json b/.solhint.json index 5045bdd..dd27065 100644 --- a/.solhint.json +++ b/.solhint.json @@ -3,6 +3,8 @@ "plugins": ["prettier"], "rules": { "prettier/prettier": "error", - "ignoreConstructors": true + "func-visibility": ["error", { "ignoreConstructors": true }], + "quotes": ["error", "single"], + "immutable-vars-naming": ["warn", { "immutablesAsConstants": false }] } } diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 517dc73..dff664e 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -2,9 +2,9 @@ ## Our Pledge -We, as contributors and maintainers, -pledge to make participation in our project and our community a harassment-free experience for everyone, -regardless of age, body size, disability, ethnicity, gender identity and expression, +We, as contributors and maintainers, +pledge to make participation in our project and our community a harassment-free experience for everyone, +regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards @@ -27,38 +27,38 @@ Examples of unacceptable behavior by participants include: ## Our Responsibilities -Project maintainers are responsible for clarifying the standards of acceptable behavior -and are expected to take appropriate and fair corrective action in +Project maintainers are responsible for clarifying the standards of acceptable behavior +and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to -remove, edit, or reject comments, commits, code, wiki edits, issues, -and other contributions that are not aligned with this Code of Conduct, -or to ban temporarily or permanently any contributor for behaviors that +remove, edit, or reject comments, commits, code, wiki edits, issues, +and other contributions that are not aligned with this Code of Conduct, +or to ban temporarily or permanently any contributor for behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope -This Code of Conduct applies both within project spaces and in -public spaces when an individual is representing the project or its community. -Examples of representing a project or community include using an official project email address, -posting via an official social media account, +This Code of Conduct applies both within project spaces and in +public spaces when an individual is representing the project or its community. +Examples of representing a project or community include using an official project email address, +posting via an official social media account, or acting as an appointed representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable -behavior may be reported by contacting the -project team at [contact@sci.domains](mailto:contact@sci.domains). +behavior may be reported by contacting the +project team at [contact@sci.domains](mailto:contact@sci.domains). All complaints will be reviewed and investigated promptly and fairly. All project team members are obligated to respect the privacy and security of the reporter of any incident. ## Attribution -This Code of Conduct is adapted from the -[Contributor Covenant](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html), +This Code of Conduct is adapted from the +[Contributor Covenant](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html), version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. -For answers to common questions about this code of conduct, +For answers to common questions about this code of conduct, see the [FAQ](https://www.contributor-covenant.org/faq). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 082b37a..69a4728 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,19 +1,19 @@ ## Contributing -In order to contribute, please fork off of the `main` branch and make your changes there. -Your commit messages should detail why you made your change in addition to what you +In order to contribute, please fork off of the `main` branch and make your changes there. +Your commit messages should detail why you made your change in addition to what you did (unless it is a tiny change). -If you need to pull in any changes from `main` after making your fork -(for example, to resolve potential merge conflicts), -please avoid using git merge and instead, git rebase your branch. +If you need to pull in any changes from `main` after making your fork +(for example, to resolve potential merge conflicts), +please avoid using git merge and instead, git rebase your branch. This will help us review your change more easily. -Additionally, if you are writing a new feature, +Additionally, if you are writing a new feature, please ensure you add appropriate test cases under test/ (see below). - -Please make sure you respect the coding style for this project. -Also, even though we do CI testing, +Please make sure you respect the coding style for this project. +You can run `pnpm lint` for the linter and check the [solidity style guides](https://docs.soliditylang.org/en/latest/style-guide.html#) for more information +Also, even though we do CI testing, please test your code and ensure that it builds locally before submitting a pull request. Thank you for your help! diff --git a/README.md b/README.md index 74ad78e..f30cc4a 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ For more information you can read the [Whitepaper](Whitepaper.pdf) ### Prerequisites - [NVM installed](https://github.com/nvm-sh/nvm) -- [Yarn package manager installed](https://classic.yarnpkg.com/lang/en/docs/install/) +- [pnpm package manager installed](https://pnpm.io/installation) ### Steps @@ -26,7 +26,7 @@ For more information you can read the [Whitepaper](Whitepaper.pdf) ```bash git clone https://github.com/your-username/sci-protocol.git -```` +``` 2. Navigate to the project directory: @@ -41,20 +41,48 @@ nvm install nvm use ``` -4. Install dependencies using Yarn: +4. Install dependencies using Pnpm: ```bash -yarn install +pnpm install ``` -Compile the Solidity contracts: -```bash -yarn compile +## Scripts + +### Compile Solidity contracts: + +```bash +pnpm compile ``` -Run the test: -```bash -yarn compile +### Run tests: + +```bash +pnpm test +``` + +### Deploy: + +For the deployments we use hardhat ignition + +```bash +pnpm deploy: +``` + +To add a new chain you need to add a new configuration inside [parameters](ignition%2Fparameters) +and add a new script in the package.json + +You can deploy specific modules using hardhat ignition + +### Development: + +You can execute the following commands to run a local node and deploy +the ENS Registry with the contracts from the protocol + +```bash +pnpm node +// In another terminal +pnpm dev ``` ## Contributing @@ -62,6 +90,7 @@ yarn compile Please see our contribution [guidelines](CONTRIBUTING.md). ## Maintainers + SCI is an open-source community project governed by a core team. ## License diff --git a/Whitepaper.pdf b/Whitepaper.pdf index fdf03e8..0182c13 100644 Binary files a/Whitepaper.pdf and b/Whitepaper.pdf differ diff --git a/contracts/Authorizers/AlwaysFalseAuthorizer.sol b/contracts/Authorizers/AlwaysFalseAuthorizer.sol deleted file mode 100644 index 8e0c3de..0000000 --- a/contracts/Authorizers/AlwaysFalseAuthorizer.sol +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; - -import {Authorizer} from './Authorizer.sol'; - -/** - * @dev This contract implements the Authorizer interface and always returns false. - * This contract is meant to be used for testing only. - * @custom:security-contact security@sci.domains - */ -contract AlwaysFalseAuthorizer is Authorizer { - /** - * @dev See {Authorizer-version}. - */ - function isAuthorized(address, bytes32) external pure returns (bool) { - return false; - } -} diff --git a/contracts/Authorizers/AlwaysTrueAuthorizer.sol b/contracts/Authorizers/AlwaysTrueAuthorizer.sol deleted file mode 100644 index e4f7430..0000000 --- a/contracts/Authorizers/AlwaysTrueAuthorizer.sol +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; - -import {Authorizer} from './Authorizer.sol'; - -/** - * @dev This contract implements the Authorizer interface and always returns true. - * This contract is meant to be used for testing only. - * @custom:security-contact security@sci.domains - */ -contract AlwaysTrueAuthorizer is Authorizer { - /** - * @dev See {Authorizer-version}. - */ - function isAuthorized(address, bytes32) external pure returns (bool) { - return true; - } -} diff --git a/contracts/Authorizers/Authorizer.sol b/contracts/Authorizers/Authorizer.sol deleted file mode 100644 index e0ef910..0000000 --- a/contracts/Authorizers/Authorizer.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; - -/** - * @dev Required interface of an Authorizer compliant contract for the SCI IRegistry.sol. - * @custom:security-contact security@sci.domains - */ -interface Authorizer { - /** - * @dev Validates if an address is authorized to register a domain. - * @param sender The address trying to register the domain. - * @param domainHash The name hash of the domain. - * @return a bool indicating whether the sender is authorizer or not. - */ - function isAuthorized(address sender, bytes32 domainHash) external returns (bool); -} diff --git a/contracts/Authorizers/ENSAuthorizer.sol b/contracts/Authorizers/ENSAuthorizer.sol deleted file mode 100644 index 129ebae..0000000 --- a/contracts/Authorizers/ENSAuthorizer.sol +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; - -import {ENS} from '@ensdomains/ens-contracts/contracts/registry/ENS.sol'; -import {Authorizer} from './Authorizer.sol'; - -/** - * @dev This contract implements the Authorizer interface and validates that the sender is - * the owner of the ENS domain using the ENS IRegistry.sol. - * @custom:security-contact security@sci.domains - */ -contract ENSAuthorizer is Authorizer { - ENS public immutable ensRegistry; - - constructor(address _ensRegistryAddress) { - ensRegistry = ENS(_ensRegistryAddress); - } - - /** - * @dev See {Authorizer-version}. - */ - function isAuthorized(address sender, bytes32 domainHash) external view returns (bool) { - address owner = ensRegistry.owner(domainHash); - return (owner == sender); - } -} diff --git a/contracts/Authorizers/SCIAuthorizer.sol b/contracts/Authorizers/SCIAuthorizer.sol deleted file mode 100644 index 9e4812c..0000000 --- a/contracts/Authorizers/SCIAuthorizer.sol +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; - -import {Authorizer} from './Authorizer.sol'; -import {AccessControlDefaultAdminRules} from '@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol'; - -/** - * @dev This contract implements the Authorizer interface - * and validates that the sender has the IS_AUTHORIZED role. - * @custom:security-contact security@sci.domains - */ -contract SCIAuthorizer is Authorizer, AccessControlDefaultAdminRules { - bytes32 public constant IS_AUTHORIZED = keccak256('IS_AUTHORIZED'); - - constructor() AccessControlDefaultAdminRules(0, _msgSender()) {} - - /** - * @dev See {Authorizer-version}. - */ - function isAuthorized(address sender, bytes32) external view returns (bool) { - return hasRole(IS_AUTHORIZED, sender); - } -} diff --git a/contracts/DomainMangager/DomainManager.sol b/contracts/DomainMangager/DomainManager.sol index c25780c..124eac5 100644 --- a/contracts/DomainMangager/DomainManager.sol +++ b/contracts/DomainMangager/DomainManager.sol @@ -1,49 +1,51 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; +pragma solidity 0.8.28; -import {SCI} from '../SCI.sol'; -import {Context} from '@openzeppelin/contracts/utils/Context.sol'; +import {ISciRegistry} from '../SciRegistry/ISciRegistry.sol'; /** - * @dev Contract module that allows children to implement access - * control only to owners of a domain. + * @title DomainManager + * @dev Contract module that implement access + * control only to owners of a domain in the SCI Registry. * @custom:security-contact security@sci.domains */ -abstract contract DomainManager is Context { - SCI public immutable sci; +abstract contract DomainManager { + ISciRegistry public immutable registry; /** - * @dev The caller account is not the owner of the domain. + * @dev Thrown when the `account` is not the owner of the domainhash. */ error AccountIsNotDomainOwner(address account, bytes32 domainHash); /** - * @dev Initializes the contract setting the address - * provided by the deployer as the SCI contract. + * @dev Modifier that checks if the provided address is the owner of the SCI domain. + * @param domainHash The namehash of the domain. + * + * Note: Reverts with `AccountIsNotDomainOwner` error if the check fails. */ - constructor(address _sciAddress) { - sci = SCI(_sciAddress); + modifier onlyDomainOwner(address account, bytes32 domainHash) { + _checkDomainOwner(account, domainHash); + _; } /** - * @dev Modifier that checks that only the owner of the domain hash is able to call - * the function. - * Reverts with an {AccountIsNotDomainOwner} error including the account - * and the domain hash. + * @dev Initializes the contract with references to the SCI Registry. + * @param _sciRegistryAddress Address of the SCI Registry contract. */ - modifier onlyDomainOwner(bytes32 domainHash) { - _checkDomainOwner(domainHash); - _; + constructor(address _sciRegistryAddress) { + registry = ISciRegistry(_sciRegistryAddress); } /** - * @dev Reverts with an {AccountIsNotDomainOwner} error if `_msgSender()` + * @dev Reverts with an {AccountIsNotDomainOwner} error if the caller * is not the owner of the domain. - * Overriding this function changes the behavior of the {onlyDomainOwner} modifier. + * @param domainHash The namehash of the domain. + * + * Note: Overriding this function changes the behavior of the {onlyDomainOwner} modifier. */ - function _checkDomainOwner(bytes32 domainHash) private view { - if (sci.domainOwner(domainHash) != _msgSender()) { - revert AccountIsNotDomainOwner(_msgSender(), domainHash); + function _checkDomainOwner(address account, bytes32 domainHash) private view { + if (registry.domainOwner(domainHash) != account) { + revert AccountIsNotDomainOwner(account, domainHash); } } } diff --git a/contracts/Ens/Ens.sol b/contracts/Ens/Ens.sol index 0e8e7a5..961787f 100644 --- a/contracts/Ens/Ens.sol +++ b/contracts/Ens/Ens.sol @@ -1,3 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; +pragma solidity 0.8.28; +// Only for testing purposes, the SCI smart contract uses the ENS interface. +/* solhint-disable */ import {ENSRegistry} from '@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol'; diff --git a/contracts/Ens/INameHash.sol b/contracts/Ens/INameHash.sol deleted file mode 100644 index fdd50f2..0000000 --- a/contracts/Ens/INameHash.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; - -/** - * @dev External interface of NameHash declared to support EIP-137 namehash algorithm for domains. - * @custom:security-contact security@sci.domains - */ -interface INameHash { - /** - * @dev Transforms a domain into a domain hash using the namehash algorithm specified in the EIP-137 - * @param domain a string representation of a domain (example.com) - * @return a bytes32 representation of the namehash algorithm applied to the domain. - * For example.com it will return 0xf59ba973941fd531b0702df2592a8480fd9f28516c50a93626e652a8ce263832. - */ - function getDomainHash(string memory domain) external pure returns (bytes32); -} diff --git a/contracts/Ens/NameHash.sol b/contracts/Ens/NameHash.sol deleted file mode 100644 index 118315d..0000000 --- a/contracts/Ens/NameHash.sol +++ /dev/null @@ -1,48 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; - -import {INameHash} from './INameHash.sol'; - -/** - * @dev Implementation of INameHash. For more information about the algorithm you can visit: - * https://eips.ethereum.org/EIPS/eip-137#namehash-algorithm. - * @custom:security-contact security@sci.domains - */ -contract NameHash is INameHash { - /** - * @dev See {INameHash-version}. - */ - function getDomainHash(string memory domain) external pure returns (bytes32) { - return namehash(abi.encodePacked(domain), 0); - } - - function namehash(bytes memory domain, uint256 i) private pure returns (bytes32) { - if (domain.length <= i) - return 0x0000000000000000000000000000000000000000000000000000000000000000; - - uint256 len = labelLength(domain, i); - - return keccak256(abi.encodePacked(namehash(domain, i + len + 1), keccak(domain, i, len))); - } - - function labelLength(bytes memory domain, uint256 i) private pure returns (uint256) { - uint256 len; - while (i + len != domain.length && domain[i + len] != 0x2e) { - ++len; - } - return len; - } - - function keccak( - bytes memory data, - uint256 offset, - uint256 len - ) private pure returns (bytes32 ret) { - if (offset + len > data.length) { - revert('Data is smaller than the offset plus the length'); - } - assembly { - ret := keccak256(add(add(data, 32), offset), len) - } - } -} diff --git a/contracts/Proxy/Proxy.sol b/contracts/Proxy/Proxy.sol new file mode 100644 index 0000000..665c990 --- /dev/null +++ b/contracts/Proxy/Proxy.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity 0.8.28; + +// We import these here to force Hardhat to compile them. +// This ensures that their artifacts are available for Hardhat Ignition to use. +// solhint-disable no-unused-import +import {ProxyAdmin} from '@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol'; +import {TransparentUpgradeableProxy} from '@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol'; diff --git a/contracts/Registrars/EnsRegistrar.sol b/contracts/Registrars/EnsRegistrar.sol new file mode 100644 index 0000000..75c6ee1 --- /dev/null +++ b/contracts/Registrars/EnsRegistrar.sol @@ -0,0 +1,92 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity 0.8.28; + +import {ENS} from '@ensdomains/ens-contracts/contracts/registry/ENS.sol'; +import {ISciRegistry} from '../SciRegistry/ISciRegistry.sol'; +import {IVerifier} from '../Verifiers/IVerifier.sol'; +import {Context} from '@openzeppelin/contracts/utils/Context.sol'; + +/** + * @title EnsRegistrar + * @dev This contract allows owners of an ENS (Ethereum Name Service) domain to register it + * in the SCI Registry contract. + * The contract ensures that only the legitimate ENS owner can register a domain + * by verifying the domain ownership through the ENS contract. + * @custom:security-contact security@sci.domains + */ +contract EnsRegistrar is Context { + ENS public immutable ensRegistry; + ISciRegistry public immutable registry; + + /** + * @dev Thrown when the `account` is not the owner of the ENS `domainhash`. + */ + error AccountIsNotEnsOwner(address account, bytes32 domainHash); + + /** + * @dev Modifier that checks if the provided `account` is the owner of the `domainhash`. + * @param account Address expected to be the domain owner. + * @param domainHash Namehash of the domain. + * + * Note: Reverts with `AccountIsNotEnsOwner` error if the check fails. + */ + modifier onlyEnsOwner(address account, bytes32 domainHash) { + _checkEnsOwner(account, domainHash); + _; + } + + /** + * @dev Initializes the contract with references to the ENS and the SCI Registry. + * @param _ensRegistryAddress Address of the ENS Registry contract. + * @param _sciRegistryAddress Address of the SCI Registry contract. + */ + constructor(address _ensRegistryAddress, address _sciRegistryAddress) { + ensRegistry = ENS(_ensRegistryAddress); + registry = ISciRegistry(_sciRegistryAddress); + } + + /** + * @dev Registers a domain in the SCI Registry contract. + * @param owner Address of the domain owner. + * @param domainHash Namehash of domain. + * + * Requirements: + * + * - The owner must be the ENS owner of the domainHash. + */ + function registerDomain( + address owner, + bytes32 domainHash + ) external onlyEnsOwner(owner, domainHash) { + registry.registerDomain(owner, domainHash); + } + + /** + * @dev Registers a domain with a verifier in the SCI Registry contract. + * @param domainHash Namehash of the domain. + * @param verifier Address of the verifier contract. + * + * Requirements: + * + * - The caller must be the ENS owner of the domainHash. + */ + function registerDomainWithVerifier( + bytes32 domainHash, + IVerifier verifier + ) external onlyEnsOwner(_msgSender(), domainHash) { + registry.registerDomainWithVerifier(_msgSender(), domainHash, verifier); + } + + /** + * @dev Private helper function to check if the specified address owns the ENS domain. + * @param account Address expected to be the domain owner. + * @param domainHash Namehash of the domain. + * + * Note: Reverts with `AccountIsNotEnsOwner` error if the address is not the owner of the ENS domain. + */ + function _checkEnsOwner(address account, bytes32 domainHash) private view { + if (ensRegistry.owner(domainHash) != account) { + revert AccountIsNotEnsOwner(account, domainHash); + } + } +} diff --git a/contracts/Registrars/SciRegistrar.sol b/contracts/Registrars/SciRegistrar.sol new file mode 100644 index 0000000..b3b250b --- /dev/null +++ b/contracts/Registrars/SciRegistrar.sol @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity 0.8.28; + +import {AccessControlDefaultAdminRules} from '@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol'; +import {ISciRegistry} from '../SciRegistry/ISciRegistry.sol'; +import {IVerifier} from '../Verifiers/IVerifier.sol'; + +/** + * @title SciRegistrar + * @dev This contract allows addresses with REGISTER_DOMAIN_ROLE role to register a domain + * in the SCI Registry. This will be use by the SCI team to register domains until the protocol + * became widly used and we don't need to be registering domains for protocols. + * + * The address with REGISTER_DOMAIN_ROLE and DEFAULT_ADMIN_ROLE should be a multisig. + * + * @custom:security-contact security@sci.domains + */ +contract SciRegistrar is AccessControlDefaultAdminRules { + // Role that allows registering domains + bytes32 public constant REGISTER_DOMAIN_ROLE = keccak256('REGISTER_DOMAIN_ROLE'); + + ISciRegistry public immutable registry; + + /** + * @dev Initializes the contract by setting up the SCI Registry reference and defining the admin rules. + * @param _sciRegistryAddress Address of the custom domain registry contract. + * @param initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information. + */ + constructor( + address _sciRegistryAddress, + uint48 initialDelay + ) AccessControlDefaultAdminRules(initialDelay, _msgSender()) { + registry = ISciRegistry(_sciRegistryAddress); + } + + /** + * @dev Registers a domain in the SCI Registry contract. + * @param owner Address expected to be the domain owner. + * @param domainHash Namehash of the domain. + * + * Requirements: + * + * - The caller must have the REGISTER_DOMAIN_ROLE role. + */ + function registerDomain( + address owner, + bytes32 domainHash + ) external onlyRole(REGISTER_DOMAIN_ROLE) { + registry.registerDomain(owner, domainHash); + } + + /** + * @dev Registers a domain with a verifier in the SCI Registry contract. + * @param owner Address expected to be the domain owner. + * @param domainHash Namehash of the domain. + * @param verifier Address of the verifier contract. + * + * Requirements: + * + * - The caller must have the REGISTER_DOMAIN_ROLE role. + * + * Note: This contract must only be handle by the SCI Team so we assume + * it's safe to receive the owner. + */ + function registerDomainWithVerifier( + address owner, + bytes32 domainHash, + IVerifier verifier + ) external onlyRole(REGISTER_DOMAIN_ROLE) { + registry.registerDomainWithVerifier(owner, domainHash, verifier); + } +} diff --git a/contracts/Registry/IRegistry.sol b/contracts/Registry/IRegistry.sol deleted file mode 100644 index a5b53d7..0000000 --- a/contracts/Registry/IRegistry.sol +++ /dev/null @@ -1,165 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; - -import {Authorizer} from '../Authorizers/Authorizer.sol'; -import {Verifier} from '../Verifiers/Verifier.sol'; - -/** - * @custom:security-contact security@sci.domains - */ -interface IRegistry { - /** - * @dev Emitted when a new `domain` with the `domainHash` is - * registered by the `owner` using the authorizer with id `authorizerId`. - */ - event DomainRegistered( - uint256 indexed authorizerId, - address indexed owner, - bytes32 indexed domainHash, - string domain - ); - - /** - * @dev Emitted when the `owner` of the `domainHash` adds a `verifier`. - * - * NOTE: This will also be emitted when the verifier is changed. - */ - event VerifierSet(address indexed owner, bytes32 domainHash, Verifier indexed verifier); - - /** - * @dev Emitted when the owner of a `domainHash` is set. - * - */ - event OwnerSet(address indexed msgSender, bytes32 domainHash, address indexed owner); - - /** - * @dev Emitted when the `msgSender` adds and `authorizer` with id `authorizerId`. - * - * NOTE: This will also be emitted when the authorizer is changed for an existing id. - */ - event AuthorizerSet(uint256 indexed authorizerId, Authorizer authorizer, address msgSender); - - /** - * @dev Thrown when the `account` is not authorized to register the domain with namehash `domainHash`. - */ - error AccountIsNotAuthorizeToRegisterDomain(address account, bytes32 domainHash); - - /** - * @dev Returns the owner, the verifier, lastOwnerSetTime and lastVerifierSetTime - * for a given domainHash. - * @param domainHash The name hash of the domain - */ - function domainHashToRecord( - bytes32 domainHash - ) - external - view - returns ( - address owner, - Verifier verifier, - uint256 lastOwnerSetTime, - uint256 lastVerifierSetTime - ); - - /** - * @dev Register a domain. - * - * @param authorizerId The id of the authorizer being used. - * @param owner The owner of the domain. - * @param domain The domain being registered (example.com). - * @param isWildcard If you are registering a wildcard to set a verifier for all subdomains. - * - * NOTE: If wildcard is true then it registers the name hash of `*.domain`. - * - * Requirements: - * - * - the owner must be authorized by the authorizer. - * - * May emit a {DomainRegistered} event. - */ - function registerDomain( - uint256 authorizerId, - address owner, - string memory domain, - bool isWildcard - ) external; - - /** - * @dev Same as registerDomain but it also adds a verifier. - * - * @param authorizerId The id of the authorizer being used. - * @param domain The domain being registered (example.com). - * @param isWildcard if you are registering a wildcard to set a verifier for all subdomains. - * @param verifier the verifier that is being set for the domain. - * - * Requirements: - * - * - the caller must be authorized by the authorizer. - * - * May emit a {DomainRegistered} and a {VerifierAdded} events. - */ - function registerDomainWithVerifier( - uint256 authorizerId, - string memory domain, - bool isWildcard, - Verifier verifier - ) external; - - /** - * @dev Returns true if the account is the owner of the domainHash. - */ - function isDomainOwner(bytes32 domainHash, address account) external view returns (bool); - - /** - * @dev Returns the owner of the domainHash. - * @param domainHash The name hash of the domain - * @return the address of the owner or the ZERO_ADDRESS if the domain is not registered - */ - function domainOwner(bytes32 domainHash) external view returns (address); - - /** - * @dev Returns the verifier of the domainHash. - * @param domainHash The name hash of the domain - * @return the address of the verifier or the ZERO_ADDRESS if the domain or - * the verifier are not registered - */ - function domainVerifier(bytes32 domainHash) external view returns (Verifier); - - /** - * @dev Returns the timestamp of the block where the verifier was set. - * @param domainHash The name hash of the domain - * @return the timestamp of the block where the verifier was set or - * 0 if it wasn't - */ - function domainVerifierSetTime(bytes32 domainHash) external view returns (uint256); - - /** - * @dev Sets a verifier to the domain hash. - * @param domainHash The name hash of the domain - * @param verifier The address of the verifier contract - * - * Requirements: - * - * - the caller must be the owner of the domain. - * - * May emit a {VerifierAdded} event. - * - * NOTE: If you want to remove a verifier you can set it to the ZERO_ADDRESS - */ - function setVerifier(bytes32 domainHash, Verifier verifier) external; - - /** - * @dev Sets an authorizer with id `authorizerId`. - * @param authorizerId The id of the authorizer - * @param authorizer The address of the authorizer contract - * - * Requirements: - * - * - the caller must have the ADD_AUTHORIZER_ROLE role. - * - * May emit a {AuthorizerAdded} event. - * - * NOTE: If you want to remove an authorizer you can set it to the ZERO_ADDRESS - */ - function setAuthorizer(uint256 authorizerId, Authorizer authorizer) external; -} diff --git a/contracts/Registry/Registry.sol b/contracts/Registry/Registry.sol deleted file mode 100644 index 15a7855..0000000 --- a/contracts/Registry/Registry.sol +++ /dev/null @@ -1,187 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; - -import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol'; -import {Context} from '@openzeppelin/contracts/utils/Context.sol'; -import {AccessControlDefaultAdminRules} from '@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol'; -import {INameHash} from '../Ens/INameHash.sol'; -import {Authorizer} from '../Authorizers/Authorizer.sol'; -import {Verifier} from '../Verifiers/Verifier.sol'; -import {IRegistry} from './IRegistry.sol'; -import {DomainManager} from '../DomainMangager/DomainManager.sol'; - -/** - * @custom:security-contact security@sci.domains - */ -contract Registry is IRegistry, Context, AccessControlDefaultAdminRules, DomainManager { - struct Record { - address owner; - Verifier verifier; - uint256 ownerSetTime; - uint256 verifierSetTime; - } - - bytes32 public constant ADD_AUTHORIZER_ROLE = keccak256('ADD_AUTHORIZER_ROLE'); - INameHash public immutable nameHashUtils; - - /** - * @dev Maps the name hash of a domain to a Record. - */ - mapping(bytes32 nameHash => Record domain) public domainHashToRecord; - - /** - * @dev Maps the id of an authorizer to the Authorizer address. - */ - mapping(uint256 authorizerId => Authorizer authorizer) public authorizers; - - /** - * @dev Sets the address for {nameHashUtils} and gives the deployer the ADMIN role. - */ - constructor( - address _nameHashAddress - ) AccessControlDefaultAdminRules(0, _msgSender()) DomainManager(address(this)) { - nameHashUtils = INameHash(_nameHashAddress); - } - - /** - * @dev See {IRegistry-version}. - */ - function registerDomain( - uint256 authorizerId, - address owner, - string memory domain, - bool isWildcard - ) external { - _registerDomain(authorizerId, owner, domain, isWildcard); - } - - /** - * @dev See {IRegistry-version}. - */ - function registerDomainWithVerifier( - uint256 authorizerId, - string memory domain, - bool isWildcard, - Verifier verifier - ) external { - bytes32 domainHash = _registerDomain(authorizerId, _msgSender(), domain, isWildcard); - _setVerifier(domainHash, verifier); - } - - /** - * @dev See {IRegistry-version}. - */ - function isDomainOwner( - bytes32 domainHash, - address account - ) external view virtual override returns (bool) { - return domainOwner(domainHash) == account; - } - - /** - * @dev See {IRegistry-version}. - */ - function domainOwner(bytes32 domainHash) public view virtual override returns (address) { - return domainHashToRecord[domainHash].owner; - } - - /** - * @dev See {IRegistry-version}. - */ - function setVerifier( - bytes32 domainHash, - Verifier verifier - ) external onlyDomainOwner(domainHash) { - _setVerifier(domainHash, verifier); - } - - /** - * @dev See {IRegistry-version}. - */ - function domainVerifier(bytes32 domainHash) external view virtual returns (Verifier) { - return domainHashToRecord[domainHash].verifier; - } - - /** - * @dev See {IRegistry-version}. - */ - function domainVerifierSetTime(bytes32 domainHash) external view virtual returns (uint256) { - return domainHashToRecord[domainHash].verifierSetTime; - } - - /** - * @dev See {IRegistry-version}. - */ - function setAuthorizer( - uint256 authorizerId, - Authorizer authorizer - ) external onlyRole(ADD_AUTHORIZER_ROLE) { - authorizers[authorizerId] = authorizer; - emit AuthorizerSet(authorizerId, authorizer, _msgSender()); - } - - /** - * @dev Base function to register a domain. - * - * @param authorizerId The id of the authorizer being used. - * @param owner The owner of the domain. - * @param domain The domain being registered (example.com). - * @param isWildcard If you are registering a wildcard to set a verifier for all subdomains. - * @return the name hash of the domain. - * - * NOTE: If wildcard is true then it registers the name hash of `*.domain`. - * - * Requirements: - * - * - the owner must be authorized by the authorizer. - * - * May emit a {DomainRegistered} event. - */ - function _registerDomain( - uint256 authorizerId, - address owner, - string memory domain, - bool isWildcard - ) private returns (bytes32) { - bytes32 domainHash = nameHashUtils.getDomainHash(domain); - - if (!authorizers[authorizerId].isAuthorized(owner, domainHash)) { - revert AccountIsNotAuthorizeToRegisterDomain(owner, domainHash); - } - - bytes32 recordDomain = domainHash; - - if (isWildcard) { - recordDomain = keccak256( - abi.encodePacked(domainHash, keccak256(abi.encodePacked('*'))) - ); - } - - _setDomainOwner(recordDomain, owner); - - emit DomainRegistered(authorizerId, owner, recordDomain, domain); - - return recordDomain; - } - - /** - * @dev Sets the verifier, updates the verifier timestamp and - * emits VerifierSet events. - * All updates to a verifier should be through this function - */ - function _setVerifier(bytes32 domainHash, Verifier verifier) private { - domainHashToRecord[domainHash].verifier = verifier; - domainHashToRecord[domainHash].verifierSetTime = block.timestamp; - emit VerifierSet(_msgSender(), domainHash, verifier); - } - - /** - * @dev Sets the owner of a domain, - * All updates to an owner should be through this function - */ - function _setDomainOwner(bytes32 domainHash, address owner) private { - domainHashToRecord[domainHash].owner = owner; - domainHashToRecord[domainHash].ownerSetTime = block.timestamp; - emit OwnerSet(_msgSender(), domainHash, owner); - } -} diff --git a/contracts/SCI.sol b/contracts/SCI.sol index c563973..5463df4 100644 --- a/contracts/SCI.sol +++ b/contracts/SCI.sol @@ -1,75 +1,76 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; +pragma solidity 0.8.28; -import {Verifier} from './Verifiers/Verifier.sol'; -import {IRegistry} from './Registry/IRegistry.sol'; -import {INameHash} from './Ens/INameHash.sol'; +import {IVerifier} from './Verifiers/IVerifier.sol'; +import {ISciRegistry} from './SciRegistry/ISciRegistry.sol'; import {Initializable} from '@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol'; +import {Ownable2StepUpgradeable} from '@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol'; /** + * @title SCI + * @dev This contract facilitates interaction with the SCI protocol, offering a simplified interface + * for apps and wallets. Apps and wallets can also directly interact with the + * Registry and verifiers directly if desired, bypassing this contract. * @custom:security-contact security@sci.domains */ -contract SCI is Initializable { - IRegistry public registry; - INameHash public nameHashUtils; +contract SCI is Initializable, Ownable2StepUpgradeable { + ISciRegistry public registry; - function initialize(address registryAddress, address nameHashAddress) external initializer { - registry = IRegistry(registryAddress); - nameHashUtils = INameHash(nameHashAddress); - } + /** + * @dev Emitted when the Registry is changed. + */ + event RegistrySet(address indexed oldRegistryAddress, address indexed newRegistryAddress); /** - * @dev Returns the owner of the domainHash. - * @param domainHash The name hash of the domain. - * @return the address of the owner or the ZERO_ADDRESS if the domain is not registered. + * @dev Initializes the SCI contract with the owner and registry address. + * Can only be called once during contract deployment. + * + * @param owner The owner of this contract. + * @param registryAddress The address of the registry to be used by the contract. */ - function domainOwner(bytes32 domainHash) public view returns (address) { - return registry.domainOwner(domainHash); + function initialize(address owner, address registryAddress) external initializer { + __Ownable2Step_init(); + __Ownable_init(owner); + setRegistry(registryAddress); } /** - * @dev Returns if the `contractAddress` deployed in the chain with id `chainId` is verified. - * to interact with the domain with name hash `domainHash`. - * @param domainHash The name hash of the domain the contract is interacting with - * @param contractAddress The address of the contract is being verified. - * @param chainId The id of the chain the contract is deployed in. - * @return a bool indicating whether the contract is verified or not. + * @dev Returns info from the domain. * - * NOTE: If there is no verifier set then it returns false. + * @param domainHash The namehash of the domain. */ - function isVerifiedForDomainHash( - bytes32 domainHash, - address contractAddress, - uint256 chainId - ) public view returns (bool) { - (, Verifier verifier, , ) = registry.domainHashToRecord(domainHash); - - if (address(verifier) == address(0)) { - return false; - } - - return verifier.isVerified(domainHash, contractAddress, chainId); + function domainHashToRecord( + bytes32 domainHash + ) + external + view + returns ( + address owner, + IVerifier verifier, + uint256 lastOwnerSetTime, + uint256 lastVerifierSetTime + ) + { + return registry.domainHashToRecord(domainHash); } /** * @dev Same as isVerifiedForDomainHash but for multiple domains. - * This is useful to check for subdomains and wildcard verification. - * For example: subdomain.example.com and *.example.com. * * @param domainHashes An array of domain hashes. * @param contractAddress The address of the contract is being verified. * @param chainId The id of the chain the contract is deployed in. - * @return an array of bool indicating whether the contract address is - * verified for each domain hash or not. + * @return an array of uint256 representing the time when the contract was verified for each domain + * or 0 if it wasn't. * - * NOTE: If there is no verifier set then it returns false for that `domainHash`. + * Note: If there is no verifier set then it returns false for that `domainHash`. */ function isVerifiedForMultipleDomainHashes( bytes32[] memory domainHashes, address contractAddress, uint256 chainId - ) external view returns (bool[] memory) { - bool[] memory domainsVerification = new bool[](domainHashes.length); + ) external view returns (uint256[] memory) { + uint256[] memory domainsVerification = new uint256[](domainHashes.length); uint256 domainHashesLength = domainHashes.length; for (uint256 i; i < domainHashesLength; ) { domainsVerification[i] = isVerifiedForDomainHash( @@ -85,97 +86,40 @@ contract SCI is Initializable { } /** - * @dev Same as isVerifiedForMultipleDomainHashes but receives the domains - * and apply the name hash algorithm to them - * - * @param domains An array of domains. + * @dev Returns if the `contractAddress` deployed in the chain with id `chainId` is verified. + * to interact with the domain with namehash `domainHash`. + * @param domainHash The namehash of the domain the contract is interacting with * @param contractAddress The address of the contract is being verified. * @param chainId The id of the chain the contract is deployed in. - * @return an array of bool indicating whether the contract address is verified for each domain or not. - - * NOTE: If there is no verifier set then it returns false for that `domain`. + * @return a uint256 representing the time when the contract was verified. + * If the contract is not verified, it returns 0. + * + * Note: If there is no verifier set then it returns 0. */ - function isVerifiedForMultipleDomains( - string[] memory domains, + function isVerifiedForDomainHash( + bytes32 domainHash, address contractAddress, uint256 chainId - ) external view returns (bool[] memory) { - bool[] memory domainsVerification = new bool[](domains.length); - uint256 domainsLength = domains.length; - for (uint256 i; i < domainsLength; ) { - domainsVerification[i] = isVerifiedForDomainHash( - nameHashUtils.getDomainHash(domains[i]), - contractAddress, - chainId - ); - unchecked { - ++i; - } - } - return domainsVerification; - } + ) public view returns (uint256) { + (, IVerifier verifier, , ) = registry.domainHashToRecord(domainHash); - /** - * @dev Same as isVerifiedForDomainHash but receives the domain and apply the name hash algorithm to them - * - * @param domain the domain the contract is interacting with. - * @param contractAddress The address of the contract is being verified. - * @param chainId The id of the chain the contract is deployed in. - * @return a bool indicating whether the contract address is verified for the domain or not. + if (address(verifier) == address(0)) { + return 0; + } - * NOTE: If there is no verifier set then it returns false. - */ - function isVerifiedForDomain( - string memory domain, - address contractAddress, - uint256 chainId - ) public view returns (bool) { - return - isVerifiedForDomainHash(nameHashUtils.getDomainHash(domain), contractAddress, chainId); + return verifier.isVerified(domainHash, contractAddress, chainId); } /** - * @dev Returns info from the domain + * @dev Sets a new registry. * - * @param domain The domain you want to get information from - */ - function domainToRecord( - string calldata domain - ) - external - view - returns ( - address owner, - Verifier verifier, - uint256 lastOwnerSetTime, - uint256 lastVerifierSetTime - ) - { - return registry.domainHashToRecord(nameHashUtils.getDomainHash(domain)); - } - - /** - * @dev Returns info from the domain + * @param newRegistry The address of the new SCI Registry. * - * @param domainHash The name hash of the domain + * May emit a {RegistrySet} event. */ - function domainHashToRecord( - bytes32 domainHash - ) - external - view - returns ( - address owner, - Verifier verifier, - uint256 lastOwnerSetTime, - uint256 lastVerifierSetTime - ) - { - return registry.domainHashToRecord(domainHash); - } - - // This is a temporary function until we change to the new SCI - function setRegistry() public { - registry = IRegistry(0x5f613920dc691b6177F2123eD2D27F00a3B5748b); + function setRegistry(address newRegistry) public onlyOwner { + address oldRegistryAddress = address(registry); + registry = ISciRegistry(newRegistry); + emit RegistrySet(oldRegistryAddress, newRegistry); } } diff --git a/contracts/SciRegistry/ISciRegistry.sol b/contracts/SciRegistry/ISciRegistry.sol new file mode 100644 index 0000000..53e63a3 --- /dev/null +++ b/contracts/SciRegistry/ISciRegistry.sol @@ -0,0 +1,143 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity 0.8.28; + +import {IVerifier} from '../Verifiers/IVerifier.sol'; + +/** + * @title ISciRegistry + * @dev This contract manages domain registration and verifiers. It uses role-based access control to allow + * only authorized accounts to register domains and update verifiers. + * The contract stores domain ownership and verifier information and allows domain owners to modify verifiers. + * @custom:security-contact security@sci.domains + */ +interface ISciRegistry { + /** + * @dev Emitted when a new `domain` with the `domainHash` is + * registered by the `owner`. + */ + event DomainRegistered( + address indexed registrar, + address indexed owner, + bytes32 indexed domainHash + ); + + /** + * @dev Emitted when the `owner` of the `domainHash` adds a `verifier`. + * + * Note: This will also be emitted when the verifier is changed. + */ + event VerifierSet( + address msgSender, + bytes32 indexed domainHash, + IVerifier indexed oldVerifier, + IVerifier indexed newVerifie + ); + + /** + * @dev Emitted when the owner of a `domainHash` is set. + * + */ + event OwnerSet( + address msgSender, + bytes32 indexed domainHash, + address indexed oldOwner, + address indexed newOwner + ); + + /** + * @dev Returns the owner, the IVerifier, lastOwnerSetTime and lastIVerifierSetTime + * for a given domainHash. + * @param domainHash The namehash of the domain. + */ + function domainHashToRecord( + bytes32 domainHash + ) + external + view + returns ( + address owner, + IVerifier verifier, + uint256 lastOwnerSetTime, + uint256 lastIVerifierSetTime + ); + + /** + * @dev Register a domain. + * + * @param owner The owner of the domain. + * @param domainHash The namehash of the domain being registered. + * + * Requirements: + * + * - Only valid Registrars must be able to call this function. + * + * May emit a {DomainRegistered} event. + */ + function registerDomain(address owner, bytes32 domainHash) external; + + /** + * @dev Same as registerDomain but it also adds a IVerifier. + * + * @param owner The owner of the domain being registered. + * @param domainHash The namehash of the domain being registered. + * @param verifier The verifier that is being set for the domain. + * + * Requirements: + * + * - Only valid Registrars must be able to call this function. + * + * Note: Most of registrars should implement this function by sending + * the message sender as the owner to avoid other addresses changing or setting + * a malicous verifier. + * + * May emit a {DomainRegistered} and a {IVerifierAdded} events. + */ + function registerDomainWithVerifier( + address owner, + bytes32 domainHash, + IVerifier verifier + ) external; + + /** + * @dev Returns true if the account is the owner of the domainHash. + */ + function isDomainOwner(bytes32 domainHash, address account) external view returns (bool); + + /** + * @dev Returns the owner of the domainHash. + * @param domainHash The namehash of the domain. + * @return The address of the owner or the ZERO_ADDRESS if the domain is not registered. + */ + function domainOwner(bytes32 domainHash) external view returns (address); + + /** + * @dev Returns the IVerifier of the domainHash. + * @param domainHash The namehash of the domain. + * @return The address of the IVerifier or the ZERO_ADDRESS if the domain or + * the IVerifier are not registered. + */ + function domainVerifier(bytes32 domainHash) external view returns (IVerifier); + + /** + * @dev Returns the timestamp of the block where the IVerifier was set. + * @param domainHash The namehash of the domain. + * @return The timestamp of the block where the IVerifier was set or + * 0 if it wasn't. + */ + function domainVerifierSetTime(bytes32 domainHash) external view returns (uint256); + + /** + * @dev Sets a IVerifier to the domain hash. + * @param domainHash The namehash of the domain. + * @param verifier The address of the IVerifier contract. + * + * Requirements: + * + * - the caller must be the owner of the domain. + * + * May emit a {IVerifierAdded} event. + * + * Note: If you want to remove a IVerifier you can set it to the ZERO_ADDRESS. + */ + function setVerifier(bytes32 domainHash, IVerifier verifier) external; +} diff --git a/contracts/SciRegistry/SciRegistry.sol b/contracts/SciRegistry/SciRegistry.sol new file mode 100644 index 0000000..a458e32 --- /dev/null +++ b/contracts/SciRegistry/SciRegistry.sol @@ -0,0 +1,193 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity 0.8.28; + +import {Context} from '@openzeppelin/contracts/utils/Context.sol'; +import {Pausable} from '@openzeppelin/contracts/utils/Pausable.sol'; +import {AccessControlDefaultAdminRules} from '@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol'; +import {IVerifier} from '../Verifiers/IVerifier.sol'; +import {ISciRegistry} from './ISciRegistry.sol'; +import {DomainManager} from '../DomainMangager/DomainManager.sol'; + +/** + * @title Registry + * @dev See {ISciRegistry}. + * @custom:security-contact security@sci.domains + */ +contract SciRegistry is + ISciRegistry, + Context, + AccessControlDefaultAdminRules, + DomainManager, + Pausable +{ + /** + * @dev Structure to hold domain record details, including: + * - owner: Address of the domain owner. + * - verifier: Address of the verifier contract associated with the domain. + * - ownerSetTime: Timestamp of when the domain owner was last set. + * - verifierSetTime: Timestamp of when the verifier was last set. + */ + struct Record { + address owner; + IVerifier verifier; + uint256 ownerSetTime; + uint256 verifierSetTime; + } + + // Role that allows managing registrar roles. + bytes32 public constant REGISTRAR_MANAGER_ROLE = keccak256('REGISTRAR_MANAGER_ROLE'); + // Role that allows registering domains. + bytes32 public constant REGISTRAR_ROLE = keccak256('REGISTRAR_ROLE'); + // Role that allows to pause the contract. + bytes32 public constant PAUSER_ROLE = keccak256('PAUSER_ROLE'); + + /** + * @dev Maps the namehash of a domain to a Record. + */ + mapping(bytes32 nameHash => Record domain) public domainHashToRecord; + + /** + * @dev Constructor to initialize the Registry contract. + * Sets the REGISTRAR_MANAGER_ROLE as the admin role of REGISTRAR_ROLE. + * @param initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information. + */ + constructor( + uint48 initialDelay + ) AccessControlDefaultAdminRules(initialDelay, _msgSender()) DomainManager(address(this)) { + _setRoleAdmin(REGISTRAR_ROLE, REGISTRAR_MANAGER_ROLE); + } + + /** + * @dev See {ISciRegistry-registerDomain}. + */ + function registerDomain(address owner, bytes32 domainHash) external { + _registerDomain(owner, domainHash); + } + + /** + * @dev See {ISciRegistry-registerDomainWithVerifier}. + */ + function registerDomainWithVerifier( + address owner, + bytes32 domainHash, + IVerifier verifier + ) external { + _registerDomain(owner, domainHash); + _setVerifier(domainHash, verifier); + } + + /** + * @dev Pauses registering a domain and setting a verifier. + */ + function pause() external onlyRole(PAUSER_ROLE) { + _pause(); + } + + /** + * @dev Unpauses registering a domain and setting a verifier. + */ + function unpause() external onlyRole(PAUSER_ROLE) { + _unpause(); + } + + /** + * @dev See {ISciRegistry-isDomainOwner}. + */ + function isDomainOwner( + bytes32 domainHash, + address account + ) external view virtual override returns (bool) { + return domainOwner(domainHash) == account; + } + + /** + * @dev See {ISciRegistry-setVerifier}. + */ + function setVerifier( + bytes32 domainHash, + IVerifier verifier + ) external onlyDomainOwner(_msgSender(), domainHash) { + _setVerifier(domainHash, verifier); + } + + /** + * @dev See {ISciRegistry-domainVerifier}. + */ + function domainVerifier(bytes32 domainHash) external view virtual returns (IVerifier) { + return domainHashToRecord[domainHash].verifier; + } + + /** + * @dev See {ISciRegistry-domainVerifierSetTime}. + */ + function domainVerifierSetTime(bytes32 domainHash) external view virtual returns (uint256) { + return domainHashToRecord[domainHash].verifierSetTime; + } + + /** + * @dev Grants a role to an account. + * @param role The role to grant. + * @param account The account receiving the role. + * + * Note: Overrides the OpenZeppelin function to require the + * caller to have the admin role for the role being granted. + */ + function grantRole(bytes32 role, address account) public override onlyRole(getRoleAdmin(role)) { + _grantRole(role, account); + } + + /** + * @dev See {ISciRegistry-domainOwner}. + */ + function domainOwner(bytes32 domainHash) public view virtual override returns (address) { + return domainHashToRecord[domainHash].owner; + } + + /** + * @dev Base function to register a domain. + * + * @param owner The owner of the domain. + * @param domainHash The namehash of the domain being registered. + * + * Requirements: + * + * - the owner must be authorized by the authorizer. + * - The contract must not be paused. + * + * May emit a {DomainRegistered} event. + */ + function _registerDomain( + address owner, + bytes32 domainHash + ) private onlyRole(REGISTRAR_ROLE) whenNotPaused { + _setDomainOwner(domainHash, owner); + emit DomainRegistered(_msgSender(), owner, domainHash); + } + + /** + * @dev Sets the verifier, updates the verifier timestamp and + * emits VerifierSet events. + * All updates to a verifier should be through this function. + * + * Requirements: + * + * - The contract must not be paused. + */ + function _setVerifier(bytes32 domainHash, IVerifier verifier) private whenNotPaused { + IVerifier oldVerifier = domainHashToRecord[domainHash].verifier; + domainHashToRecord[domainHash].verifier = verifier; + domainHashToRecord[domainHash].verifierSetTime = block.timestamp; + emit VerifierSet(_msgSender(), domainHash, oldVerifier, verifier); + } + + /** + * @dev Sets the owner of a domain, + * All updates to an owner should be through this function. + */ + function _setDomainOwner(bytes32 domainHash, address owner) private { + address oldOwner = domainHashToRecord[domainHash].owner; + domainHashToRecord[domainHash].owner = owner; + domainHashToRecord[domainHash].ownerSetTime = block.timestamp; + emit OwnerSet(_msgSender(), domainHash, oldOwner, owner); + } +} diff --git a/contracts/Verifiers/IVerifier.sol b/contracts/Verifiers/IVerifier.sol new file mode 100644 index 0000000..66c7ef9 --- /dev/null +++ b/contracts/Verifiers/IVerifier.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity 0.8.28; + +/** + * @title IVerifier + * @dev Required interface of a Verifier compliant contract for the SCI Registry. + * @custom:security-contact security@sci.domains + */ +interface IVerifier { + /** + * @dev Verifies if a contract in a specific chain is authorized + * to interact within a domain. + * @param domainHash The domain's namehash. + * @param contractAddress The address of the contract trying to be verified. + * @param chainId The chain where the contract is deployed. + * @return a uint256 representing the time when the contract was verified. + * If the contract is not verified, it returns 0. + * + * Note: The return timestamp is a best effor approach to provide the time when the contract + * was verified. For verifiers that can't know when the contract was verified they could + * return when the verifier was deployed. + */ + function isVerified( + bytes32 domainHash, + address contractAddress, + uint256 chainId + ) external view returns (uint256); +} diff --git a/contracts/Verifiers/PublicListVerifier.sol b/contracts/Verifiers/PublicListVerifier.sol index 22e9670..0effe22 100644 --- a/contracts/Verifiers/PublicListVerifier.sol +++ b/contracts/Verifiers/PublicListVerifier.sol @@ -1,11 +1,12 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; +pragma solidity 0.8.28; -import {Verifier} from './Verifier.sol'; +import {IVerifier} from './IVerifier.sol'; import {DomainManager} from '../DomainMangager/DomainManager.sol'; import {Context} from '@openzeppelin/contracts/utils/Context.sol'; /** + * @title PublicListVerifier * @dev This contract implements the Verifier interface. * Domain owners can add or remove addresses that can interact within their domain. * @@ -13,15 +14,15 @@ import {Context} from '@openzeppelin/contracts/utils/Context.sol'; * this contract is verified for all chains for that domain. * @custom:security-contact security@sci.domains */ -contract PublicListVerifier is Verifier, Context, DomainManager { +contract PublicListVerifier is IVerifier, Context, DomainManager { uint256 private constant MAX_INT = 2 ** 256 - 1; // Domain hash -> contract address -> chain id -> true/false. - mapping(bytes32 domainHash => mapping(address contractAddress => mapping(uint256 chainId => bool exists))) + mapping(bytes32 domainHash => mapping(address contractAddress => mapping(uint256 chainId => uint256 registerTimestamp))) public verifiedContracts; /** - * @dev Emitted when the `msgSender` removes an address to a `domainHash` for a `chainId` + * @dev Emitted when the `msgSender` removes an address to a `domainHash` for a `chainId`. */ event AddressRemoved( bytes32 indexed domainHash, @@ -31,7 +32,7 @@ contract PublicListVerifier is Verifier, Context, DomainManager { ); /** - * @dev Emitted when the `msgSender` adds an address to a `domainHash` for a `chainId` + * @dev Emitted when the `msgSender` adds an address to a `domainHash` for a `chainId`. */ event AddressAdded( bytes32 indexed domainHash, @@ -43,20 +44,21 @@ contract PublicListVerifier is Verifier, Context, DomainManager { constructor(address _registry) DomainManager(_registry) {} /** - * @dev + * @dev Adds multiple addresses in multiple chains to the domain. * * Requirements: * - * - The message sender must be the owner of the domain. + * - The caller must be the owner of the domain. */ function addAddresses( bytes32 domainHash, address[] calldata contractAddresses, uint256[][] calldata chainIds - ) external onlyDomainOwner(domainHash) { + ) external onlyDomainOwner(_msgSender(), domainHash) { for (uint256 i; i < contractAddresses.length; ) { for (uint256 j; j < chainIds[i].length; ) { - verifiedContracts[domainHash][contractAddresses[i]][chainIds[i][j]] = true; + verifiedContracts[domainHash][contractAddresses[i]][chainIds[i][j]] = block + .timestamp; emit AddressAdded(domainHash, chainIds[i][j], contractAddresses[i], _msgSender()); unchecked { ++j; @@ -69,20 +71,20 @@ contract PublicListVerifier is Verifier, Context, DomainManager { } /** - * @dev See {IERC1155-balanceOfBatch}. + * @dev Removes multiple addresses in multiple chains to the domain. * * Requirements: * - * - The message sender must be the owner of the domain. + * - The caller must be the owner of the domain. */ function removeAddresses( bytes32 domainHash, address[] calldata contractAddresses, uint256[][] calldata chainIds - ) external onlyDomainOwner(domainHash) { + ) external onlyDomainOwner(_msgSender(), domainHash) { for (uint256 i; i < contractAddresses.length; ) { for (uint256 j; j < chainIds[i].length; ++j) { - verifiedContracts[domainHash][contractAddresses[i]][chainIds[i][j]] = false; + verifiedContracts[domainHash][contractAddresses[i]][chainIds[i][j]] = 0; emit AddressRemoved(domainHash, chainIds[i][j], contractAddresses[i], _msgSender()); unchecked { ++j; @@ -95,15 +97,25 @@ contract PublicListVerifier is Verifier, Context, DomainManager { } /** - * @dev See {Verifier-version}. + * @dev See {IVerifier-isVerified}. */ function isVerified( bytes32 domainHash, address contractAddress, uint256 chainId - ) external view returns (bool) { - return - verifiedContracts[domainHash][contractAddress][chainId] || - verifiedContracts[domainHash][contractAddress][MAX_INT]; + ) external view returns (uint256) { + uint256 verifiedContract = verifiedContracts[domainHash][contractAddress][chainId]; + + if (verifiedContract != 0) { + return verifiedContract; + } + + verifiedContract = verifiedContracts[domainHash][contractAddress][MAX_INT]; + if (verifiedContract != 0) { + return verifiedContract; + } + + // Return 0 if no match is found + return 0; } } diff --git a/contracts/Verifiers/Verifier.sol b/contracts/Verifiers/Verifier.sol deleted file mode 100644 index 7a2d71a..0000000 --- a/contracts/Verifiers/Verifier.sol +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.25; - -/** - * @dev Required interface of a Verifier compliant contract for the SCI IRegistry.sol. - * @custom:security-contact security@sci.domains - */ -interface Verifier { - /** - * @dev Verifies if a contract in a specific chain is authorized - * to interact within a domain. - * @param domainHash The domain's name hash. - * @param contractAddress The address of the contract trying to be verified. - * @param chainId The chain where the contract is deployed. - * @return a bool indicating whether the sender is authorizer or not. - */ - function isVerified( - bytes32 domainHash, - address contractAddress, - uint256 chainId - ) external view returns (bool); -} diff --git a/deployments/goerli/NameHash.json b/deployments/goerli/NameHash.json deleted file mode 100644 index 8f28f0d..0000000 --- a/deployments/goerli/NameHash.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "address": "0x65f51aFf4b86198f5F1Af4E2438739677Ca22550" -} diff --git a/deployments/goerli/PublicListVerifier.json b/deployments/goerli/PublicListVerifier.json deleted file mode 100644 index 04b8c90..0000000 --- a/deployments/goerli/PublicListVerifier.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "address": "0x54C1C0F6c83c7E1df6f67834DAA1366982B5B326" -} \ No newline at end of file diff --git a/deployments/goerli/Registry.json b/deployments/goerli/Registry.json deleted file mode 100644 index 2ff1081..0000000 --- a/deployments/goerli/Registry.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "address": "0xf554d3340e5659Ecc05121C2ffC3ACdd37D6Fc69" -} \ No newline at end of file diff --git a/deployments/goerli/SCI.json b/deployments/goerli/SCI.json deleted file mode 100644 index 64387ba..0000000 --- a/deployments/goerli/SCI.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "address": "0x59f13C12d82aD380CB55504bD30eA08226f65978" -} \ No newline at end of file diff --git a/deployments/goerli/SCIAuthorizer.json b/deployments/goerli/SCIAuthorizer.json deleted file mode 100644 index c7a72f2..0000000 --- a/deployments/goerli/SCIAuthorizer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "address": "0x55Dd872ce6355580a7bd69f9848a17Dd8dA1d091" -} \ No newline at end of file diff --git a/deployments/mainnet/NameHash.json b/deployments/mainnet/NameHash.json deleted file mode 100644 index e6e92cd..0000000 --- a/deployments/mainnet/NameHash.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "address": "0x2f9C081B266027bfaf36Ddb96657d16Cc4fa05B7" -} \ No newline at end of file diff --git a/deployments/mainnet/PublicListVerifier.json b/deployments/mainnet/PublicListVerifier.json deleted file mode 100644 index 97f593a..0000000 --- a/deployments/mainnet/PublicListVerifier.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "address": "0x3b604a105175cF56803ea9ad7360f41903d0255D" -} \ No newline at end of file diff --git a/deployments/mainnet/Registry.json b/deployments/mainnet/Registry.json deleted file mode 100644 index 4fbf6f2..0000000 --- a/deployments/mainnet/Registry.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "address": "0x5f613920dc691b6177F2123eD2D27F00a3B5748b" -} \ No newline at end of file diff --git a/deployments/mainnet/SCI.json b/deployments/mainnet/SCI.json deleted file mode 100644 index 183d845..0000000 --- a/deployments/mainnet/SCI.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "address": "0x76FF9FfB76F889f6E60E491D00Dd2aA0a9bFb6bA" -} \ No newline at end of file diff --git a/deployments/mainnet/SCIAuthorizer.json b/deployments/mainnet/SCIAuthorizer.json deleted file mode 100644 index 9db05bb..0000000 --- a/deployments/mainnet/SCIAuthorizer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "address": "0x2Ab04C5423A22e5eCb4f56bA2d6495bc1F51D67D" -} \ No newline at end of file diff --git a/hardhat.config.ts b/hardhat.config.ts index a239520..e2b3f07 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -2,19 +2,16 @@ import { HardhatUserConfig } from 'hardhat/config'; import '@nomicfoundation/hardhat-toolbox'; import '@nomiclabs/hardhat-solhint'; import '@openzeppelin/hardhat-upgrades'; +import '@nomicfoundation/hardhat-ledger'; +import '@nomicfoundation/hardhat-ignition-ethers'; import 'dotenv/config'; -import './plugins/walletConnect/index'; - -function getAccounts(privateKey: string | undefined): string[] { - return privateKey ? [privateKey] : []; -} function getUrl(url: string | undefined): string { return url ?? ''; } const config: HardhatUserConfig = { - solidity: '0.8.25', + solidity: '0.8.28', gasReporter: { currency: 'USD', enabled: true, @@ -27,11 +24,11 @@ const config: HardhatUserConfig = { sepolia: { chainId: 11155111, url: getUrl(process.env.ETHEREUM_SEPOLIA_PROVIDER_URL), + ledgerAccounts: [process.env.ADDRESS!], }, mainnet: { chainId: 1, url: getUrl(process.env.ETHEREUM_MAINNET_PROVIDER_URL), - useWalletConnect: true, }, }, etherscan: { @@ -40,17 +37,6 @@ const config: HardhatUserConfig = { sourcify: { enabled: false, }, - walletConnect: { - projectId: process.env.WALLET_CONNECT_PROJECT_ID!, - metadata: { - name: 'SCI', - description: 'SCI Deployer', - url: 'https://sci.domains', - icons: ['https://www.sci.domains/images/logo/sci_logo.svg'], - }, - showQrModal: false, - optionalChains: [1], - }, }; export default config; diff --git a/ignition/deployments/chain-11155111/artifacts/ProxyModule#ProxyAdmin.dbg.json b/ignition/deployments/chain-11155111/artifacts/ProxyModule#ProxyAdmin.dbg.json new file mode 100644 index 0000000..6237201 --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/ProxyModule#ProxyAdmin.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/11d2b948747b122d2e9b3e93000a4e8b.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/ProxyModule#ProxyAdmin.json b/ignition/deployments/chain-11155111/artifacts/ProxyModule#ProxyAdmin.json new file mode 100644 index 0000000..97ef5b5 --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/ProxyModule#ProxyAdmin.json @@ -0,0 +1,132 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ProxyAdmin", + "sourceName": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "initialOwner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "UPGRADE_INTERFACE_VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ITransparentUpgradeableProxy", + "name": "proxy", + "type": "address" + }, + { + "internalType": "address", + "name": "implementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea2646970667358221220395f28e781612bf5bf29aa036b240c8e269d4b342adf86c7c0946886c542932f64736f6c634300081c0033", + "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea2646970667358221220395f28e781612bf5bf29aa036b240c8e269d4b342adf86c7c0946886c542932f64736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/ProxyModule#SCI.dbg.json b/ignition/deployments/chain-11155111/artifacts/ProxyModule#SCI.dbg.json new file mode 100644 index 0000000..6237201 --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/ProxyModule#SCI.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/11d2b948747b122d2e9b3e93000a4e8b.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/ProxyModule#SCI.json b/ignition/deployments/chain-11155111/artifacts/ProxyModule#SCI.json new file mode 100644 index 0000000..3703e1f --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/ProxyModule#SCI.json @@ -0,0 +1,302 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SCI", + "sourceName": "contracts/SCI.sol", + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferStarted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "oldRegistryAddress", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newRegistryAddress", + "type": "address" + } + ], + "name": "RegistrySet", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainHashToRecord", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + }, + { + "internalType": "uint256", + "name": "lastOwnerSetTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastVerifierSetTime", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "name": "isVerifiedForDomainHash", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "domainHashes", + "type": "bytes32[]" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "name": "isVerifiedForMultipleDomainHashes", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract ISciRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newRegistry", + "type": "address" + } + ], + "name": "setRegistry", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6080604052348015600f57600080fd5b5061142d8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220821405c484cd8f087bce149e0b629c117ae2f5f6ce02e02cc9ceab8cc5f1b3a064736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220821405c484cd8f087bce149e0b629c117ae2f5f6ce02e02cc9ceab8cc5f1b3a064736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/ProxyModule#TransparentUpgradeableProxy.dbg.json b/ignition/deployments/chain-11155111/artifacts/ProxyModule#TransparentUpgradeableProxy.dbg.json new file mode 100644 index 0000000..6237201 --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/ProxyModule#TransparentUpgradeableProxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/11d2b948747b122d2e9b3e93000a4e8b.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/ProxyModule#TransparentUpgradeableProxy.json b/ignition/deployments/chain-11155111/artifacts/ProxyModule#TransparentUpgradeableProxy.json new file mode 100644 index 0000000..73780bb --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/ProxyModule#TransparentUpgradeableProxy.json @@ -0,0 +1,116 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TransparentUpgradeableProxy", + "sourceName": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "internalType": "address", + "name": "initialOwner", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "admin", + "type": "address" + } + ], + "name": "ERC1967InvalidAdmin", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "ERC1967InvalidImplementation", + "type": "error" + }, + { + "inputs": [], + "name": "ERC1967NonPayable", + "type": "error" + }, + { + "inputs": [], + "name": "FailedInnerCall", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyDeniedAdminAccess", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + } + ], + "bytecode": "0x60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea2646970667358221220822de418beb5a325cfb8f4bb063c678ed495b4367e9e78b179c23a652dfdfe7064736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea2646970667358221220395f28e781612bf5bf29aa036b240c8e269d4b342adf86c7c0946886c542932f64736f6c634300081c0033", + "deployedBytecode": "0x608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea2646970667358221220822de418beb5a325cfb8f4bb063c678ed495b4367e9e78b179c23a652dfdfe7064736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/PublicListVerifier#PublicListVerifier.dbg.json b/ignition/deployments/chain-11155111/artifacts/PublicListVerifier#PublicListVerifier.dbg.json new file mode 100644 index 0000000..6237201 --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/PublicListVerifier#PublicListVerifier.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/11d2b948747b122d2e9b3e93000a4e8b.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/PublicListVerifier#PublicListVerifier.json b/ignition/deployments/chain-11155111/artifacts/PublicListVerifier#PublicListVerifier.json new file mode 100644 index 0000000..145e4b6 --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/PublicListVerifier#PublicListVerifier.json @@ -0,0 +1,217 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "PublicListVerifier", + "sourceName": "contracts/Verifiers/PublicListVerifier.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "AccountIsNotDomainOwner", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "msgSender", + "type": "address" + } + ], + "name": "AddressAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "msgSender", + "type": "address" + } + ], + "name": "AddressRemoved", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address[]", + "name": "contractAddresses", + "type": "address[]" + }, + { + "internalType": "uint256[][]", + "name": "chainIds", + "type": "uint256[][]" + } + ], + "name": "addAddresses", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "name": "isVerified", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract ISciRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address[]", + "name": "contractAddresses", + "type": "address[]" + }, + { + "internalType": "uint256[][]", + "name": "chainIds", + "type": "uint256[][]" + } + ], + "name": "removeAddresses", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "name": "verifiedContracts", + "outputs": [ + { + "internalType": "uint256", + "name": "registerTimestamp", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60a060405234801561001057600080fd5b50604051610e03380380610e03833981810160405281019061003291906100d1565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506100fe565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061009e82610073565b9050919050565b6100ae81610093565b81146100b957600080fd5b50565b6000815190506100cb816100a5565b92915050565b6000602082840312156100e7576100e661006e565b5b60006100f5848285016100bc565b91505092915050565b608051610ce36101206000396000818161045301526106980152610ce36000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063046852d01461005c5780630f59a4981461008c57806379fb477a146100a85780637b103999146100d857806382ef31d9146100f6575b600080fd5b61007660048036038101906100719190610862565b610112565b60405161008391906108c4565b60405180910390f35b6100a660048036038101906100a1919061099a565b61022a565b005b6100c260048036038101906100bd9190610862565b61041f565b6040516100cf91906108c4565b60405180910390f35b6100e0610451565b6040516100ed9190610a8e565b60405180910390f35b610110600480360381019061010b919061099a565b610475565b005b60008060008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600081146101895780915050610223565b60008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020019081526020016000205490506000811461021d5780915050610223565b60009150505b9392505050565b610232610677565b8561023d828261067f565b60005b868690508110156104155760005b85858381811061026157610260610aa9565b5b90506020028101906102739190610ae7565b905081101561040957426000808b815260200190815260200160002060008a8a868181106102a4576102a3610aa9565b5b90506020020160208101906102b99190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061030857610307610aa9565b5b905060200281019061031a9190610ae7565b8581811061032b5761032a610aa9565b5b9050602002013581526020019081526020016000208190555087878381811061035757610356610aa9565b5b905060200201602081019061036c9190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1686868481811061039557610394610aa9565b5b90506020028101906103a79190610ae7565b838181106103b8576103b7610aa9565b5b905060200201358a7fc177490b924686771eb8a2b77bee53e5913e624c90b60207d396f81cfe6e7cd06103e9610677565b6040516103f69190610b86565b60405180910390a480600101905061024e565b50806001019050610240565b5050505050505050565b600060205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b61047d610677565b85610488828261067f565b60005b8686905081101561066d5760005b8585838181106104ac576104ab610aa9565b5b90506020028101906104be9190610ae7565b90508110156106615760008060008b815260200190815260200160002060008a8a868181106104f0576104ef610aa9565b5b90506020020160208101906105059190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061055457610553610aa9565b5b90506020028101906105669190610ae7565b8581811061057757610576610aa9565b5b905060200201358152602001908152602001600020819055508787838181106105a3576105a2610aa9565b5b90506020020160208101906105b89190610b4a565b73ffffffffffffffffffffffffffffffffffffffff168686848181106105e1576105e0610aa9565b5b90506020028101906105f39190610ae7565b8381811061060457610603610aa9565b5b905060200201358a7f36be184145fbd476ffe0597f987f89d7490b926e334512a42de54749eee25e75610635610677565b6040516106429190610b86565b60405180910390a48060010190508061065a90610bd0565b9050610499565b5080600101905061048b565b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016106ef9190610c27565b602060405180830381865afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190610c57565b73ffffffffffffffffffffffffffffffffffffffff161461078a5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401610781929190610c84565b60405180910390fd5b5050565b600080fd5b600080fd5b6000819050919050565b6107ab81610798565b81146107b657600080fd5b50565b6000813590506107c8816107a2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107f9826107ce565b9050919050565b610809816107ee565b811461081457600080fd5b50565b60008135905061082681610800565b92915050565b6000819050919050565b61083f8161082c565b811461084a57600080fd5b50565b60008135905061085c81610836565b92915050565b60008060006060848603121561087b5761087a61078e565b5b6000610889868287016107b9565b935050602061089a86828701610817565b92505060406108ab8682870161084d565b9150509250925092565b6108be8161082c565b82525050565b60006020820190506108d960008301846108b5565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610904576109036108df565b5b8235905067ffffffffffffffff811115610921576109206108e4565b5b60208301915083602082028301111561093d5761093c6108e9565b5b9250929050565b60008083601f84011261095a576109596108df565b5b8235905067ffffffffffffffff811115610977576109766108e4565b5b602083019150836020820283011115610993576109926108e9565b5b9250929050565b6000806000806000606086880312156109b6576109b561078e565b5b60006109c4888289016107b9565b955050602086013567ffffffffffffffff8111156109e5576109e4610793565b5b6109f1888289016108ee565b9450945050604086013567ffffffffffffffff811115610a1457610a13610793565b5b610a2088828901610944565b92509250509295509295909350565b6000819050919050565b6000610a54610a4f610a4a846107ce565b610a2f565b6107ce565b9050919050565b6000610a6682610a39565b9050919050565b6000610a7882610a5b565b9050919050565b610a8881610a6d565b82525050565b6000602082019050610aa36000830184610a7f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112610b0457610b03610ad8565b5b80840192508235915067ffffffffffffffff821115610b2657610b25610add565b5b602083019250602082023603831315610b4257610b41610ae2565b5b509250929050565b600060208284031215610b6057610b5f61078e565b5b6000610b6e84828501610817565b91505092915050565b610b80816107ee565b82525050565b6000602082019050610b9b6000830184610b77565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bdb8261082c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c0d57610c0c610ba1565b5b600182019050919050565b610c2181610798565b82525050565b6000602082019050610c3c6000830184610c18565b92915050565b600081519050610c5181610800565b92915050565b600060208284031215610c6d57610c6c61078e565b5b6000610c7b84828501610c42565b91505092915050565b6000604082019050610c996000830185610b77565b610ca66020830184610c18565b939250505056fea2646970667358221220e19e189f4f848086a4754a9206058bc9b93d6e078c6e1ebe9364c03045d6085764736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063046852d01461005c5780630f59a4981461008c57806379fb477a146100a85780637b103999146100d857806382ef31d9146100f6575b600080fd5b61007660048036038101906100719190610862565b610112565b60405161008391906108c4565b60405180910390f35b6100a660048036038101906100a1919061099a565b61022a565b005b6100c260048036038101906100bd9190610862565b61041f565b6040516100cf91906108c4565b60405180910390f35b6100e0610451565b6040516100ed9190610a8e565b60405180910390f35b610110600480360381019061010b919061099a565b610475565b005b60008060008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600081146101895780915050610223565b60008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020019081526020016000205490506000811461021d5780915050610223565b60009150505b9392505050565b610232610677565b8561023d828261067f565b60005b868690508110156104155760005b85858381811061026157610260610aa9565b5b90506020028101906102739190610ae7565b905081101561040957426000808b815260200190815260200160002060008a8a868181106102a4576102a3610aa9565b5b90506020020160208101906102b99190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061030857610307610aa9565b5b905060200281019061031a9190610ae7565b8581811061032b5761032a610aa9565b5b9050602002013581526020019081526020016000208190555087878381811061035757610356610aa9565b5b905060200201602081019061036c9190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1686868481811061039557610394610aa9565b5b90506020028101906103a79190610ae7565b838181106103b8576103b7610aa9565b5b905060200201358a7fc177490b924686771eb8a2b77bee53e5913e624c90b60207d396f81cfe6e7cd06103e9610677565b6040516103f69190610b86565b60405180910390a480600101905061024e565b50806001019050610240565b5050505050505050565b600060205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b61047d610677565b85610488828261067f565b60005b8686905081101561066d5760005b8585838181106104ac576104ab610aa9565b5b90506020028101906104be9190610ae7565b90508110156106615760008060008b815260200190815260200160002060008a8a868181106104f0576104ef610aa9565b5b90506020020160208101906105059190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061055457610553610aa9565b5b90506020028101906105669190610ae7565b8581811061057757610576610aa9565b5b905060200201358152602001908152602001600020819055508787838181106105a3576105a2610aa9565b5b90506020020160208101906105b89190610b4a565b73ffffffffffffffffffffffffffffffffffffffff168686848181106105e1576105e0610aa9565b5b90506020028101906105f39190610ae7565b8381811061060457610603610aa9565b5b905060200201358a7f36be184145fbd476ffe0597f987f89d7490b926e334512a42de54749eee25e75610635610677565b6040516106429190610b86565b60405180910390a48060010190508061065a90610bd0565b9050610499565b5080600101905061048b565b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016106ef9190610c27565b602060405180830381865afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190610c57565b73ffffffffffffffffffffffffffffffffffffffff161461078a5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401610781929190610c84565b60405180910390fd5b5050565b600080fd5b600080fd5b6000819050919050565b6107ab81610798565b81146107b657600080fd5b50565b6000813590506107c8816107a2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107f9826107ce565b9050919050565b610809816107ee565b811461081457600080fd5b50565b60008135905061082681610800565b92915050565b6000819050919050565b61083f8161082c565b811461084a57600080fd5b50565b60008135905061085c81610836565b92915050565b60008060006060848603121561087b5761087a61078e565b5b6000610889868287016107b9565b935050602061089a86828701610817565b92505060406108ab8682870161084d565b9150509250925092565b6108be8161082c565b82525050565b60006020820190506108d960008301846108b5565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610904576109036108df565b5b8235905067ffffffffffffffff811115610921576109206108e4565b5b60208301915083602082028301111561093d5761093c6108e9565b5b9250929050565b60008083601f84011261095a576109596108df565b5b8235905067ffffffffffffffff811115610977576109766108e4565b5b602083019150836020820283011115610993576109926108e9565b5b9250929050565b6000806000806000606086880312156109b6576109b561078e565b5b60006109c4888289016107b9565b955050602086013567ffffffffffffffff8111156109e5576109e4610793565b5b6109f1888289016108ee565b9450945050604086013567ffffffffffffffff811115610a1457610a13610793565b5b610a2088828901610944565b92509250509295509295909350565b6000819050919050565b6000610a54610a4f610a4a846107ce565b610a2f565b6107ce565b9050919050565b6000610a6682610a39565b9050919050565b6000610a7882610a5b565b9050919050565b610a8881610a6d565b82525050565b6000602082019050610aa36000830184610a7f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112610b0457610b03610ad8565b5b80840192508235915067ffffffffffffffff821115610b2657610b25610add565b5b602083019250602082023603831315610b4257610b41610ae2565b5b509250929050565b600060208284031215610b6057610b5f61078e565b5b6000610b6e84828501610817565b91505092915050565b610b80816107ee565b82525050565b6000602082019050610b9b6000830184610b77565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bdb8261082c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c0d57610c0c610ba1565b5b600182019050919050565b610c2181610798565b82525050565b6000602082019050610c3c6000830184610c18565b92915050565b600081519050610c5181610800565b92915050565b600060208284031215610c6d57610c6c61078e565b5b6000610c7b84828501610c42565b91505092915050565b6000604082019050610c996000830185610b77565b610ca66020830184610c18565b939250505056fea2646970667358221220e19e189f4f848086a4754a9206058bc9b93d6e078c6e1ebe9364c03045d6085764736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/SciModule#SCI.dbg.json b/ignition/deployments/chain-11155111/artifacts/SciModule#SCI.dbg.json new file mode 100644 index 0000000..6237201 --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/SciModule#SCI.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/11d2b948747b122d2e9b3e93000a4e8b.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/SciModule#SCI.json b/ignition/deployments/chain-11155111/artifacts/SciModule#SCI.json new file mode 100644 index 0000000..3703e1f --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/SciModule#SCI.json @@ -0,0 +1,302 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SCI", + "sourceName": "contracts/SCI.sol", + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferStarted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "oldRegistryAddress", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newRegistryAddress", + "type": "address" + } + ], + "name": "RegistrySet", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainHashToRecord", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + }, + { + "internalType": "uint256", + "name": "lastOwnerSetTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastVerifierSetTime", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "name": "isVerifiedForDomainHash", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "domainHashes", + "type": "bytes32[]" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "name": "isVerifiedForMultipleDomainHashes", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract ISciRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newRegistry", + "type": "address" + } + ], + "name": "setRegistry", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6080604052348015600f57600080fd5b5061142d8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220821405c484cd8f087bce149e0b629c117ae2f5f6ce02e02cc9ceab8cc5f1b3a064736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220821405c484cd8f087bce149e0b629c117ae2f5f6ce02e02cc9ceab8cc5f1b3a064736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/SciRegistry#SciRegistry.dbg.json b/ignition/deployments/chain-11155111/artifacts/SciRegistry#SciRegistry.dbg.json new file mode 100644 index 0000000..6237201 --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/SciRegistry#SciRegistry.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/11d2b948747b122d2e9b3e93000a4e8b.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/SciRegistry#SciRegistry.json b/ignition/deployments/chain-11155111/artifacts/SciRegistry#SciRegistry.json new file mode 100644 index 0000000..33e1a39 --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/SciRegistry#SciRegistry.json @@ -0,0 +1,867 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SciRegistry", + "sourceName": "contracts/SciRegistry/SciRegistry.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint48", + "name": "initialDelay", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "name": "AccessControlEnforcedDefaultAdminDelay", + "type": "error" + }, + { + "inputs": [], + "name": "AccessControlEnforcedDefaultAdminRules", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "defaultAdmin", + "type": "address" + } + ], + "name": "AccessControlInvalidDefaultAdmin", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "AccountIsNotDomainOwner", + "type": "error" + }, + { + "inputs": [], + "name": "EnforcedPause", + "type": "error" + }, + { + "inputs": [], + "name": "ExpectedPause", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "bits", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeCastOverflowedUintDowncast", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminDelayChangeCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "effectSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminDelayChangeScheduled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminTransferCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "acceptSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminTransferScheduled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "registrar", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "DomainRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "msgSender", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "msgSender", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "contract IVerifier", + "name": "oldVerifier", + "type": "address" + }, + { + "indexed": true, + "internalType": "contract IVerifier", + "name": "newVerifie", + "type": "address" + } + ], + "name": "VerifierSet", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PAUSER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTRAR_MANAGER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTRAR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "beginDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cancelDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + } + ], + "name": "changeDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelayIncreaseWait", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "nameHash", + "type": "bytes32" + } + ], + "name": "domainHashToRecord", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + }, + { + "internalType": "uint256", + "name": "ownerSetTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "verifierSetTime", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainVerifier", + "outputs": [ + { + "internalType": "contract IVerifier", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainVerifierSetTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isDomainOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "registerDomain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + } + ], + "name": "registerDomainWithVerifier", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract ISciRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "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": [], + "name": "rollbackDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + } + ], + "name": "setVerifier", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60a060405234801561001057600080fd5b5060405161292d38038061292d8339818101604052810190610032919061051a565b308161004261019560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b45760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100ab9190610588565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100ec6000801b8261019d60201b60201c565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506000600360006101000a81548160ff02191690831515021790555061018f7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092387f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750961027660201b60201c565b506105a3565b600033905090565b60008060001b830361025e57600073ffffffffffffffffffffffffffffffffffffffff166101cf6102c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461021c576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61026e83836102f060201b60201c565b905092915050565b6000801b82036102b2576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102c282826103ed60201b60201c565b5050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610302838361044e60201b60201c565b6103e257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061037f61019560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506103e7565b600090505b92915050565b60006103fe836104b860201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806000838152602001908152602001600020600101549050919050565b600080fd5b600065ffffffffffff82169050919050565b6104f7816104dc565b811461050257600080fd5b50565b600081519050610514816104ee565b92915050565b6000602082840312156105305761052f6104d7565b5b600061053e84828501610505565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061057282610547565b9050919050565b61058281610567565b82525050565b600060208201905061059d6000830184610579565b92915050565b6080516123686105c560003960008181610924015261115a01526123686000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ca7565b6105ff565b6040516102279190611cef565b60405180910390f35b610238610679565b6040516102459190611d2b565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611d7c565b61069c565b60405161027f9190611db8565b60405180910390f35b6102a2600480360381019061029d9190611e31565b6106bb565b005b6102be60048036038101906102b99190611e31565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611d7c565b610827565b6040516102f19190611ed0565b60405180910390f35b610314600480360381019061030f9190611d7c565b610867565b6040516103249493929190611f13565b60405180910390f35b6103356108d7565b6040516103429190611cef565b60405180910390f35b61036560048036038101906103609190611f58565b6108ee565b005b610381600480360381019061037c9190611fb1565b610908565b005b61038b610922565b6040516103989190611fff565b60405180910390f35b6103bb60048036038101906103b69190611e31565b610946565b6040516103c89190611cef565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061201a565b60405180910390f35b6104016109e6565b60405161040e919061201a565b60405180910390f35b610431600480360381019061042c9190611e31565b6109f5565b60405161043e9190611cef565b60405180910390f35b61044f610a5f565b60405161045d929190612035565b60405180910390f35b61046e610abf565b60405161047b9190611db8565b60405180910390f35b61049e60048036038101906104999190611d7c565b610ac6565b6040516104ab919061205e565b60405180910390f35b6104ce60048036038101906104c991906120b7565b610ae6565b005b6104ea60048036038101906104e591906120f7565b610b09565b005b6104f4610b17565b6040516105019190611db8565b60405180910390f35b610512610b3b565b60405161051f9190611d2b565b60405180910390f35b610530610ba9565b005b61053a610c3f565b604051610548929190612137565b60405180910390f35b61056b60048036038101906105669190611d7c565b610c82565b604051610578919061201a565b60405180910390f35b61059b60048036038101906105969190611e31565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612160565b610d24565b005b6105cb610d3d565b6040516105d89190611db8565b60405180910390f35b6105e9610d61565b6040516105f69190611db8565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d2b565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061201a565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061201a565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b61101191906121e2565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d2b565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d91906121e2565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612035565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061201a565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611db8565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612231565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef600000000000000000000000000000000000000000000000000000000815260040161124392919061225e565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061201a565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d2b565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c492919061225e565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122cf565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b291906122f8565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061201a565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000818310611c405781611c42565b825b905092915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c8481611c4f565b8114611c8f57600080fd5b50565b600081359050611ca181611c7b565b92915050565b600060208284031215611cbd57611cbc611c4a565b5b6000611ccb84828501611c92565b91505092915050565b60008115159050919050565b611ce981611cd4565b82525050565b6000602082019050611d046000830184611ce0565b92915050565b600065ffffffffffff82169050919050565b611d2581611d0a565b82525050565b6000602082019050611d406000830184611d1c565b92915050565b6000819050919050565b611d5981611d46565b8114611d6457600080fd5b50565b600081359050611d7681611d50565b92915050565b600060208284031215611d9257611d91611c4a565b5b6000611da084828501611d67565b91505092915050565b611db281611d46565b82525050565b6000602082019050611dcd6000830184611da9565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dfe82611dd3565b9050919050565b611e0e81611df3565b8114611e1957600080fd5b50565b600081359050611e2b81611e05565b92915050565b60008060408385031215611e4857611e47611c4a565b5b6000611e5685828601611d67565b9250506020611e6785828601611e1c565b9150509250929050565b6000819050919050565b6000611e96611e91611e8c84611dd3565b611e71565b611dd3565b9050919050565b6000611ea882611e7b565b9050919050565b6000611eba82611e9d565b9050919050565b611eca81611eaf565b82525050565b6000602082019050611ee56000830184611ec1565b92915050565b611ef481611df3565b82525050565b6000819050919050565b611f0d81611efa565b82525050565b6000608082019050611f286000830187611eeb565b611f356020830186611ec1565b611f426040830185611f04565b611f4f6060830184611f04565b95945050505050565b600060208284031215611f6e57611f6d611c4a565b5b6000611f7c84828501611e1c565b91505092915050565b611f8e81611d0a565b8114611f9957600080fd5b50565b600081359050611fab81611f85565b92915050565b600060208284031215611fc757611fc6611c4a565b5b6000611fd584828501611f9c565b91505092915050565b6000611fe982611e9d565b9050919050565b611ff981611fde565b82525050565b60006020820190506120146000830184611ff0565b92915050565b600060208201905061202f6000830184611eeb565b92915050565b600060408201905061204a6000830185611d1c565b6120576020830184611d1c565b9392505050565b60006020820190506120736000830184611f04565b92915050565b600061208482611df3565b9050919050565b61209481612079565b811461209f57600080fd5b50565b6000813590506120b18161208b565b92915050565b600080604083850312156120ce576120cd611c4a565b5b60006120dc85828601611d67565b92505060206120ed858286016120a2565b9150509250929050565b6000806040838503121561210e5761210d611c4a565b5b600061211c85828601611e1c565b925050602061212d85828601611d67565b9150509250929050565b600060408201905061214c6000830185611eeb565b6121596020830184611d1c565b9392505050565b60008060006060848603121561217957612178611c4a565b5b600061218786828701611e1c565b935050602061219886828701611d67565b92505060406121a9868287016120a2565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121ed82611d0a565b91506121f883611d0a565b9250828201905065ffffffffffff811115612216576122156121b3565b5b92915050565b60008151905061222b81611e05565b92915050565b60006020828403121561224757612246611c4a565b5b60006122558482850161221c565b91505092915050565b60006040820190506122736000830185611eeb565b6122806020830184611da9565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122b96122b46122af84612287565b611e71565b612291565b9050919050565b6122c98161229e565b82525050565b60006040820190506122e460008301856122c0565b6122f16020830184611f04565b9392505050565b600061230382611d0a565b915061230e83611d0a565b9250828203905065ffffffffffff81111561232c5761232b6121b3565b5b9291505056fea264697066735822122045b9e71aa8dc2a139bb98a453175d418f82bc5b62b4236ce56fe6b30a9dfffc964736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ca7565b6105ff565b6040516102279190611cef565b60405180910390f35b610238610679565b6040516102459190611d2b565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611d7c565b61069c565b60405161027f9190611db8565b60405180910390f35b6102a2600480360381019061029d9190611e31565b6106bb565b005b6102be60048036038101906102b99190611e31565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611d7c565b610827565b6040516102f19190611ed0565b60405180910390f35b610314600480360381019061030f9190611d7c565b610867565b6040516103249493929190611f13565b60405180910390f35b6103356108d7565b6040516103429190611cef565b60405180910390f35b61036560048036038101906103609190611f58565b6108ee565b005b610381600480360381019061037c9190611fb1565b610908565b005b61038b610922565b6040516103989190611fff565b60405180910390f35b6103bb60048036038101906103b69190611e31565b610946565b6040516103c89190611cef565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061201a565b60405180910390f35b6104016109e6565b60405161040e919061201a565b60405180910390f35b610431600480360381019061042c9190611e31565b6109f5565b60405161043e9190611cef565b60405180910390f35b61044f610a5f565b60405161045d929190612035565b60405180910390f35b61046e610abf565b60405161047b9190611db8565b60405180910390f35b61049e60048036038101906104999190611d7c565b610ac6565b6040516104ab919061205e565b60405180910390f35b6104ce60048036038101906104c991906120b7565b610ae6565b005b6104ea60048036038101906104e591906120f7565b610b09565b005b6104f4610b17565b6040516105019190611db8565b60405180910390f35b610512610b3b565b60405161051f9190611d2b565b60405180910390f35b610530610ba9565b005b61053a610c3f565b604051610548929190612137565b60405180910390f35b61056b60048036038101906105669190611d7c565b610c82565b604051610578919061201a565b60405180910390f35b61059b60048036038101906105969190611e31565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612160565b610d24565b005b6105cb610d3d565b6040516105d89190611db8565b60405180910390f35b6105e9610d61565b6040516105f69190611db8565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d2b565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061201a565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061201a565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b61101191906121e2565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d2b565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d91906121e2565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612035565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061201a565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611db8565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612231565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef600000000000000000000000000000000000000000000000000000000815260040161124392919061225e565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061201a565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d2b565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c492919061225e565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122cf565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b291906122f8565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061201a565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000818310611c405781611c42565b825b905092915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c8481611c4f565b8114611c8f57600080fd5b50565b600081359050611ca181611c7b565b92915050565b600060208284031215611cbd57611cbc611c4a565b5b6000611ccb84828501611c92565b91505092915050565b60008115159050919050565b611ce981611cd4565b82525050565b6000602082019050611d046000830184611ce0565b92915050565b600065ffffffffffff82169050919050565b611d2581611d0a565b82525050565b6000602082019050611d406000830184611d1c565b92915050565b6000819050919050565b611d5981611d46565b8114611d6457600080fd5b50565b600081359050611d7681611d50565b92915050565b600060208284031215611d9257611d91611c4a565b5b6000611da084828501611d67565b91505092915050565b611db281611d46565b82525050565b6000602082019050611dcd6000830184611da9565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dfe82611dd3565b9050919050565b611e0e81611df3565b8114611e1957600080fd5b50565b600081359050611e2b81611e05565b92915050565b60008060408385031215611e4857611e47611c4a565b5b6000611e5685828601611d67565b9250506020611e6785828601611e1c565b9150509250929050565b6000819050919050565b6000611e96611e91611e8c84611dd3565b611e71565b611dd3565b9050919050565b6000611ea882611e7b565b9050919050565b6000611eba82611e9d565b9050919050565b611eca81611eaf565b82525050565b6000602082019050611ee56000830184611ec1565b92915050565b611ef481611df3565b82525050565b6000819050919050565b611f0d81611efa565b82525050565b6000608082019050611f286000830187611eeb565b611f356020830186611ec1565b611f426040830185611f04565b611f4f6060830184611f04565b95945050505050565b600060208284031215611f6e57611f6d611c4a565b5b6000611f7c84828501611e1c565b91505092915050565b611f8e81611d0a565b8114611f9957600080fd5b50565b600081359050611fab81611f85565b92915050565b600060208284031215611fc757611fc6611c4a565b5b6000611fd584828501611f9c565b91505092915050565b6000611fe982611e9d565b9050919050565b611ff981611fde565b82525050565b60006020820190506120146000830184611ff0565b92915050565b600060208201905061202f6000830184611eeb565b92915050565b600060408201905061204a6000830185611d1c565b6120576020830184611d1c565b9392505050565b60006020820190506120736000830184611f04565b92915050565b600061208482611df3565b9050919050565b61209481612079565b811461209f57600080fd5b50565b6000813590506120b18161208b565b92915050565b600080604083850312156120ce576120cd611c4a565b5b60006120dc85828601611d67565b92505060206120ed858286016120a2565b9150509250929050565b6000806040838503121561210e5761210d611c4a565b5b600061211c85828601611e1c565b925050602061212d85828601611d67565b9150509250929050565b600060408201905061214c6000830185611eeb565b6121596020830184611d1c565b9392505050565b60008060006060848603121561217957612178611c4a565b5b600061218786828701611e1c565b935050602061219886828701611d67565b92505060406121a9868287016120a2565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121ed82611d0a565b91506121f883611d0a565b9250828201905065ffffffffffff811115612216576122156121b3565b5b92915050565b60008151905061222b81611e05565b92915050565b60006020828403121561224757612246611c4a565b5b60006122558482850161221c565b91505092915050565b60006040820190506122736000830185611eeb565b6122806020830184611da9565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122b96122b46122af84612287565b611e71565b612291565b9050919050565b6122c98161229e565b82525050565b60006040820190506122e460008301856122c0565b6122f16020830184611f04565b9392505050565b600061230382611d0a565b915061230e83611d0a565b9250828203905065ffffffffffff81111561232c5761232b6121b3565b5b9291505056fea264697066735822122045b9e71aa8dc2a139bb98a453175d418f82bc5b62b4236ce56fe6b30a9dfffc964736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/SciRegstrar#SciRegistrar.dbg.json b/ignition/deployments/chain-11155111/artifacts/SciRegstrar#SciRegistrar.dbg.json new file mode 100644 index 0000000..6237201 --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/SciRegstrar#SciRegistrar.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/11d2b948747b122d2e9b3e93000a4e8b.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/SciRegstrar#SciRegistrar.json b/ignition/deployments/chain-11155111/artifacts/SciRegstrar#SciRegistrar.json new file mode 100644 index 0000000..62d87c1 --- /dev/null +++ b/ignition/deployments/chain-11155111/artifacts/SciRegstrar#SciRegistrar.json @@ -0,0 +1,547 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SciRegistrar", + "sourceName": "contracts/Registrars/SciRegistrar.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_sciRegistryAddress", + "type": "address" + }, + { + "internalType": "uint48", + "name": "initialDelay", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "name": "AccessControlEnforcedDefaultAdminDelay", + "type": "error" + }, + { + "inputs": [], + "name": "AccessControlEnforcedDefaultAdminRules", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "defaultAdmin", + "type": "address" + } + ], + "name": "AccessControlInvalidDefaultAdmin", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "bits", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeCastOverflowedUintDowncast", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminDelayChangeCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "effectSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminDelayChangeScheduled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminTransferCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "acceptSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminTransferScheduled", + "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": "REGISTER_DOMAIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "beginDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cancelDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + } + ], + "name": "changeDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelayIncreaseWait", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "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": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "registerDomain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + } + ], + "name": "registerDomainWithVerifier", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract ISciRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "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": [], + "name": "rollbackDefaultAdminDelay", + "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": "0x60a060405234801561001057600080fd5b50604051611f61380380611f618339818101604052810190610032919061043c565b8061004161012960201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b35760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100aa919061048b565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100eb6000801b8261013160201b60201c565b5050508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506104a6565b600033905090565b60008060001b83036101f257600073ffffffffffffffffffffffffffffffffffffffff1661016361020a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146101b0576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610202838361023460201b60201c565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610246838361033160201b60201c565b61032657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102c361012960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061032b565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103cb826103a0565b9050919050565b6103db816103c0565b81146103e657600080fd5b50565b6000815190506103f8816103d2565b92915050565b600065ffffffffffff82169050919050565b610419816103fe565b811461042457600080fd5b50565b60008151905061043681610410565b92915050565b600080604083850312156104535761045261039b565b5b6000610461858286016103e9565b925050602061047285828601610427565b9150509250929050565b610485816103c0565b82525050565b60006020820190506104a0600083018461047c565b92915050565b608051611a926104cf6000396000818161063e0152818161079601526109fb0152611a926000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c9190611497565b6103c9565b60405161016e91906114df565b60405180910390f35b61017f610443565b60405161018c919061151b565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b4919061156c565b610466565b6040516101c691906115a8565b60405180910390f35b6101d7610485565b6040516101e491906115a8565b60405180910390f35b61020760048036038101906102029190611621565b6104a9565b005b610223600480360381019061021e9190611621565b6104f3565b005b61023f600480360381019061023a9190611661565b610608565b005b61025b600480360381019061025691906116ba565b610622565b005b61026561063c565b6040516102729190611746565b60405180910390f35b610283610660565b6040516102909190611770565b60405180910390f35b6102a161068a565b6040516102ae9190611770565b60405180910390f35b6102d160048036038101906102cc9190611621565b610699565b6040516102de91906114df565b60405180910390f35b6102ef610703565b6040516102fd92919061178b565b60405180910390f35b61030e610763565b60405161031b91906115a8565b60405180910390f35b61033e600480360381019061033991906117b4565b61076a565b005b610348610826565b604051610355919061151b565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e9291906117f4565b60405180910390f35b6103a1600480360381019061039c9190611621565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061185b565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061151b565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118ae565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611770565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a56939291906118f8565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c919061195e565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061151b565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c88919061195e565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc592919061178b565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061151b565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118ae565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b9291906119f9565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a22565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60008183106114305781611432565b825b905092915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114748161143f565b811461147f57600080fd5b50565b6000813590506114918161146b565b92915050565b6000602082840312156114ad576114ac61143a565b5b60006114bb84828501611482565b91505092915050565b60008115159050919050565b6114d9816114c4565b82525050565b60006020820190506114f460008301846114d0565b92915050565b600065ffffffffffff82169050919050565b611515816114fa565b82525050565b6000602082019050611530600083018461150c565b92915050565b6000819050919050565b61154981611536565b811461155457600080fd5b50565b60008135905061156681611540565b92915050565b6000602082840312156115825761158161143a565b5b600061159084828501611557565b91505092915050565b6115a281611536565b82525050565b60006020820190506115bd6000830184611599565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115ee826115c3565b9050919050565b6115fe816115e3565b811461160957600080fd5b50565b60008135905061161b816115f5565b92915050565b600080604083850312156116385761163761143a565b5b600061164685828601611557565b92505060206116578582860161160c565b9150509250929050565b6000602082840312156116775761167661143a565b5b60006116858482850161160c565b91505092915050565b611697816114fa565b81146116a257600080fd5b50565b6000813590506116b48161168e565b92915050565b6000602082840312156116d0576116cf61143a565b5b60006116de848285016116a5565b91505092915050565b6000819050919050565b600061170c611707611702846115c3565b6116e7565b6115c3565b9050919050565b600061171e826116f1565b9050919050565b600061173082611713565b9050919050565b61174081611725565b82525050565b600060208201905061175b6000830184611737565b92915050565b61176a816115e3565b82525050565b60006020820190506117856000830184611761565b92915050565b60006040820190506117a0600083018561150c565b6117ad602083018461150c565b9392505050565b600080604083850312156117cb576117ca61143a565b5b60006117d98582860161160c565b92505060206117ea85828601611557565b9150509250929050565b60006040820190506118096000830185611761565b611816602083018461150c565b9392505050565b6000611828826115e3565b9050919050565b6118388161181d565b811461184357600080fd5b50565b6000813590506118558161182f565b92915050565b6000806000606084860312156118745761187361143a565b5b60006118828682870161160c565b935050602061189386828701611557565b92505060406118a486828701611846565b9150509250925092565b60006040820190506118c36000830185611761565b6118d06020830184611599565b9392505050565b60006118e282611713565b9050919050565b6118f2816118d7565b82525050565b600060608201905061190d6000830186611761565b61191a6020830185611599565b61192760408301846118e9565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611969826114fa565b9150611974836114fa565b9250828201905065ffffffffffff8111156119925761199161192f565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ca6119c56119c084611998565b6116e7565b6119a2565b9050919050565b6119da816119af565b82525050565b6000819050919050565b6119f3816119e0565b82525050565b6000604082019050611a0e60008301856119d1565b611a1b60208301846119ea565b9392505050565b6000611a2d826114fa565b9150611a38836114fa565b9250828203905065ffffffffffff811115611a5657611a5561192f565b5b9291505056fea2646970667358221220784af17183a32592891679a3d8a65de9c8f4edc26375d777c51a2a5c8404168464736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c9190611497565b6103c9565b60405161016e91906114df565b60405180910390f35b61017f610443565b60405161018c919061151b565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b4919061156c565b610466565b6040516101c691906115a8565b60405180910390f35b6101d7610485565b6040516101e491906115a8565b60405180910390f35b61020760048036038101906102029190611621565b6104a9565b005b610223600480360381019061021e9190611621565b6104f3565b005b61023f600480360381019061023a9190611661565b610608565b005b61025b600480360381019061025691906116ba565b610622565b005b61026561063c565b6040516102729190611746565b60405180910390f35b610283610660565b6040516102909190611770565b60405180910390f35b6102a161068a565b6040516102ae9190611770565b60405180910390f35b6102d160048036038101906102cc9190611621565b610699565b6040516102de91906114df565b60405180910390f35b6102ef610703565b6040516102fd92919061178b565b60405180910390f35b61030e610763565b60405161031b91906115a8565b60405180910390f35b61033e600480360381019061033991906117b4565b61076a565b005b610348610826565b604051610355919061151b565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e9291906117f4565b60405180910390f35b6103a1600480360381019061039c9190611621565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061185b565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061151b565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118ae565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611770565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a56939291906118f8565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c919061195e565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061151b565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c88919061195e565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc592919061178b565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061151b565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118ae565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b9291906119f9565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a22565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60008183106114305781611432565b825b905092915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114748161143f565b811461147f57600080fd5b50565b6000813590506114918161146b565b92915050565b6000602082840312156114ad576114ac61143a565b5b60006114bb84828501611482565b91505092915050565b60008115159050919050565b6114d9816114c4565b82525050565b60006020820190506114f460008301846114d0565b92915050565b600065ffffffffffff82169050919050565b611515816114fa565b82525050565b6000602082019050611530600083018461150c565b92915050565b6000819050919050565b61154981611536565b811461155457600080fd5b50565b60008135905061156681611540565b92915050565b6000602082840312156115825761158161143a565b5b600061159084828501611557565b91505092915050565b6115a281611536565b82525050565b60006020820190506115bd6000830184611599565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115ee826115c3565b9050919050565b6115fe816115e3565b811461160957600080fd5b50565b60008135905061161b816115f5565b92915050565b600080604083850312156116385761163761143a565b5b600061164685828601611557565b92505060206116578582860161160c565b9150509250929050565b6000602082840312156116775761167661143a565b5b60006116858482850161160c565b91505092915050565b611697816114fa565b81146116a257600080fd5b50565b6000813590506116b48161168e565b92915050565b6000602082840312156116d0576116cf61143a565b5b60006116de848285016116a5565b91505092915050565b6000819050919050565b600061170c611707611702846115c3565b6116e7565b6115c3565b9050919050565b600061171e826116f1565b9050919050565b600061173082611713565b9050919050565b61174081611725565b82525050565b600060208201905061175b6000830184611737565b92915050565b61176a816115e3565b82525050565b60006020820190506117856000830184611761565b92915050565b60006040820190506117a0600083018561150c565b6117ad602083018461150c565b9392505050565b600080604083850312156117cb576117ca61143a565b5b60006117d98582860161160c565b92505060206117ea85828601611557565b9150509250929050565b60006040820190506118096000830185611761565b611816602083018461150c565b9392505050565b6000611828826115e3565b9050919050565b6118388161181d565b811461184357600080fd5b50565b6000813590506118558161182f565b92915050565b6000806000606084860312156118745761187361143a565b5b60006118828682870161160c565b935050602061189386828701611557565b92505060406118a486828701611846565b9150509250925092565b60006040820190506118c36000830185611761565b6118d06020830184611599565b9392505050565b60006118e282611713565b9050919050565b6118f2816118d7565b82525050565b600060608201905061190d6000830186611761565b61191a6020830185611599565b61192760408301846118e9565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611969826114fa565b9150611974836114fa565b9250828201905065ffffffffffff8111156119925761199161192f565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ca6119c56119c084611998565b6116e7565b6119a2565b9050919050565b6119da816119af565b82525050565b6000819050919050565b6119f3816119e0565b82525050565b6000604082019050611a0e60008301856119d1565b611a1b60208301846119ea565b9392505050565b6000611a2d826114fa565b9150611a38836114fa565b9250828203905065ffffffffffff811115611a5657611a5561192f565b5b9291505056fea2646970667358221220784af17183a32592891679a3d8a65de9c8f4edc26375d777c51a2a5c8404168464736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/build-info/11d2b948747b122d2e9b3e93000a4e8b.json b/ignition/deployments/chain-11155111/build-info/11d2b948747b122d2e9b3e93000a4e8b.json new file mode 100644 index 0000000..d3cd6dc --- /dev/null +++ b/ignition/deployments/chain-11155111/build-info/11d2b948747b122d2e9b3e93000a4e8b.json @@ -0,0 +1,163278 @@ +{ + "id": "11d2b948747b122d2e9b3e93000a4e8b", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.28", + "solcLongVersion": "0.8.28+commit.7893614a", + "input": { + "language": "Solidity", + "sources": { + "@ensdomains/ens-contracts/contracts/registry/ENS.sol": { + "content": "pragma solidity >=0.8.4;\n\ninterface ENS {\n // Logged when the owner of a node assigns a new owner to a subnode.\n event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);\n\n // Logged when the owner of a node transfers ownership to a new account.\n event Transfer(bytes32 indexed node, address owner);\n\n // Logged when the resolver for a node changes.\n event NewResolver(bytes32 indexed node, address resolver);\n\n // Logged when the TTL of a node changes\n event NewTTL(bytes32 indexed node, uint64 ttl);\n\n // Logged when an operator is added or removed.\n event ApprovalForAll(\n address indexed owner,\n address indexed operator,\n bool approved\n );\n\n function setRecord(\n bytes32 node,\n address owner,\n address resolver,\n uint64 ttl\n ) external;\n\n function setSubnodeRecord(\n bytes32 node,\n bytes32 label,\n address owner,\n address resolver,\n uint64 ttl\n ) external;\n\n function setSubnodeOwner(\n bytes32 node,\n bytes32 label,\n address owner\n ) external returns (bytes32);\n\n function setResolver(bytes32 node, address resolver) external;\n\n function setOwner(bytes32 node, address owner) external;\n\n function setTTL(bytes32 node, uint64 ttl) external;\n\n function setApprovalForAll(address operator, bool approved) external;\n\n function owner(bytes32 node) external view returns (address);\n\n function resolver(bytes32 node) external view returns (address);\n\n function ttl(bytes32 node) external view returns (uint64);\n\n function recordExists(bytes32 node) external view returns (bool);\n\n function isApprovedForAll(\n address owner,\n address operator\n ) external view returns (bool);\n}\n" + }, + "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol": { + "content": "pragma solidity >=0.8.4;\n\nimport \"./ENS.sol\";\n\n/**\n * The ENS registry contract.\n */\ncontract ENSRegistry is ENS {\n struct Record {\n address owner;\n address resolver;\n uint64 ttl;\n }\n\n mapping(bytes32 => Record) records;\n mapping(address => mapping(address => bool)) operators;\n\n // Permits modifications only by the owner of the specified node.\n modifier authorised(bytes32 node) {\n address owner = records[node].owner;\n require(owner == msg.sender || operators[owner][msg.sender]);\n _;\n }\n\n /**\n * @dev Constructs a new ENS registry.\n */\n constructor() public {\n records[0x0].owner = msg.sender;\n }\n\n /**\n * @dev Sets the record for a node.\n * @param node The node to update.\n * @param owner The address of the new owner.\n * @param resolver The address of the resolver.\n * @param ttl The TTL in seconds.\n */\n function setRecord(\n bytes32 node,\n address owner,\n address resolver,\n uint64 ttl\n ) external virtual override {\n setOwner(node, owner);\n _setResolverAndTTL(node, resolver, ttl);\n }\n\n /**\n * @dev Sets the record for a subnode.\n * @param node The parent node.\n * @param label The hash of the label specifying the subnode.\n * @param owner The address of the new owner.\n * @param resolver The address of the resolver.\n * @param ttl The TTL in seconds.\n */\n function setSubnodeRecord(\n bytes32 node,\n bytes32 label,\n address owner,\n address resolver,\n uint64 ttl\n ) external virtual override {\n bytes32 subnode = setSubnodeOwner(node, label, owner);\n _setResolverAndTTL(subnode, resolver, ttl);\n }\n\n /**\n * @dev Transfers ownership of a node to a new address. May only be called by the current owner of the node.\n * @param node The node to transfer ownership of.\n * @param owner The address of the new owner.\n */\n function setOwner(\n bytes32 node,\n address owner\n ) public virtual override authorised(node) {\n _setOwner(node, owner);\n emit Transfer(node, owner);\n }\n\n /**\n * @dev Transfers ownership of a subnode keccak256(node, label) to a new address. May only be called by the owner of the parent node.\n * @param node The parent node.\n * @param label The hash of the label specifying the subnode.\n * @param owner The address of the new owner.\n */\n function setSubnodeOwner(\n bytes32 node,\n bytes32 label,\n address owner\n ) public virtual override authorised(node) returns (bytes32) {\n bytes32 subnode = keccak256(abi.encodePacked(node, label));\n _setOwner(subnode, owner);\n emit NewOwner(node, label, owner);\n return subnode;\n }\n\n /**\n * @dev Sets the resolver address for the specified node.\n * @param node The node to update.\n * @param resolver The address of the resolver.\n */\n function setResolver(\n bytes32 node,\n address resolver\n ) public virtual override authorised(node) {\n emit NewResolver(node, resolver);\n records[node].resolver = resolver;\n }\n\n /**\n * @dev Sets the TTL for the specified node.\n * @param node The node to update.\n * @param ttl The TTL in seconds.\n */\n function setTTL(\n bytes32 node,\n uint64 ttl\n ) public virtual override authorised(node) {\n emit NewTTL(node, ttl);\n records[node].ttl = ttl;\n }\n\n /**\n * @dev Enable or disable approval for a third party (\"operator\") to manage\n * all of `msg.sender`'s ENS records. Emits the ApprovalForAll event.\n * @param operator Address to add to the set of authorized operators.\n * @param approved True if the operator is approved, false to revoke approval.\n */\n function setApprovalForAll(\n address operator,\n bool approved\n ) external virtual override {\n operators[msg.sender][operator] = approved;\n emit ApprovalForAll(msg.sender, operator, approved);\n }\n\n /**\n * @dev Returns the address that owns the specified node.\n * @param node The specified node.\n * @return address of the owner.\n */\n function owner(\n bytes32 node\n ) public view virtual override returns (address) {\n address addr = records[node].owner;\n if (addr == address(this)) {\n return address(0x0);\n }\n\n return addr;\n }\n\n /**\n * @dev Returns the address of the resolver for the specified node.\n * @param node The specified node.\n * @return address of the resolver.\n */\n function resolver(\n bytes32 node\n ) public view virtual override returns (address) {\n return records[node].resolver;\n }\n\n /**\n * @dev Returns the TTL of a node, and any records associated with it.\n * @param node The specified node.\n * @return ttl of the node.\n */\n function ttl(bytes32 node) public view virtual override returns (uint64) {\n return records[node].ttl;\n }\n\n /**\n * @dev Returns whether a record has been imported to the registry.\n * @param node The specified node.\n * @return Bool if record exists\n */\n function recordExists(\n bytes32 node\n ) public view virtual override returns (bool) {\n return records[node].owner != address(0x0);\n }\n\n /**\n * @dev Query if an address is an authorized operator for another address.\n * @param owner The address that owns the records.\n * @param operator The address that acts on behalf of the owner.\n * @return True if `operator` is an approved operator for `owner`, false otherwise.\n */\n function isApprovedForAll(\n address owner,\n address operator\n ) external view virtual override returns (bool) {\n return operators[owner][operator];\n }\n\n function _setOwner(bytes32 node, address owner) internal virtual {\n records[node].owner = owner;\n }\n\n function _setResolverAndTTL(\n bytes32 node,\n address resolver,\n uint64 ttl\n ) internal {\n if (resolver != records[node].resolver) {\n records[node].resolver = resolver;\n emit NewResolver(node, resolver);\n }\n\n if (ttl != records[node].ttl) {\n records[node].ttl = ttl;\n emit NewTTL(node, ttl);\n }\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable2Step.sol)\n\npragma solidity ^0.8.20;\n\nimport {OwnableUpgradeable} from \"./OwnableUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is specified at deployment time in the constructor for `Ownable`. This\n * can later be changed with {transferOwnership} and {acceptOwnership}.\n *\n * This module is used through inheritance. It will make available all functions\n * from parent (Ownable).\n */\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\n /// @custom:storage-location erc7201:openzeppelin.storage.Ownable2Step\n struct Ownable2StepStorage {\n address _pendingOwner;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Ownable2Step\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant Ownable2StepStorageLocation = 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00;\n\n function _getOwnable2StepStorage() private pure returns (Ownable2StepStorage storage $) {\n assembly {\n $.slot := Ownable2StepStorageLocation\n }\n }\n\n event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\n\n function __Ownable2Step_init() internal onlyInitializing {\n }\n\n function __Ownable2Step_init_unchained() internal onlyInitializing {\n }\n /**\n * @dev Returns the address of the pending owner.\n */\n function pendingOwner() public view virtual returns (address) {\n Ownable2StepStorage storage $ = _getOwnable2StepStorage();\n return $._pendingOwner;\n }\n\n /**\n * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual override onlyOwner {\n Ownable2StepStorage storage $ = _getOwnable2StepStorage();\n $._pendingOwner = newOwner;\n emit OwnershipTransferStarted(owner(), newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual override {\n Ownable2StepStorage storage $ = _getOwnable2StepStorage();\n delete $._pendingOwner;\n super._transferOwnership(newOwner);\n }\n\n /**\n * @dev The new owner accepts the ownership transfer.\n */\n function acceptOwnership() public virtual {\n address sender = _msgSender();\n if (pendingOwner() != sender) {\n revert OwnableUnauthorizedAccount(sender);\n }\n _transferOwnership(sender);\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ContextUpgradeable} from \"../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\n /// @custom:storage-location erc7201:openzeppelin.storage.Ownable\n struct OwnableStorage {\n address _owner;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Ownable\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant OwnableStorageLocation = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300;\n\n function _getOwnableStorage() private pure returns (OwnableStorage storage $) {\n assembly {\n $.slot := OwnableStorageLocation\n }\n }\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n function __Ownable_init(address initialOwner) internal onlyInitializing {\n __Ownable_init_unchained(initialOwner);\n }\n\n function __Ownable_init_unchained(address initialOwner) internal onlyInitializing {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n OwnableStorage storage $ = _getOwnableStorage();\n return $._owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n OwnableStorage storage $ = _getOwnableStorage();\n address oldOwner = $._owner;\n $._owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```solidity\n * contract MyToken is ERC20Upgradeable {\n * function initialize() initializer public {\n * __ERC20_init(\"MyToken\", \"MTK\");\n * }\n * }\n *\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n * function initializeV2() reinitializer(2) public {\n * __ERC20Permit_init(\"MyToken\");\n * }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n * _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Storage of the initializable contract.\n *\n * It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n * when using with upgradeable contracts.\n *\n * @custom:storage-location erc7201:openzeppelin.storage.Initializable\n */\n struct InitializableStorage {\n /**\n * @dev Indicates that the contract has been initialized.\n */\n uint64 _initialized;\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool _initializing;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Initializable\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant INITIALIZABLE_STORAGE = 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00;\n\n /**\n * @dev The contract is already initialized.\n */\n error InvalidInitialization();\n\n /**\n * @dev The contract is not initializing.\n */\n error NotInitializing();\n\n /**\n * @dev Triggered when the contract has been initialized or reinitialized.\n */\n event Initialized(uint64 version);\n\n /**\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n * `onlyInitializing` functions can be used to initialize parent contracts.\n *\n * Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n * number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n * production.\n *\n * Emits an {Initialized} event.\n */\n modifier initializer() {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n // Cache values to avoid duplicated sloads\n bool isTopLevelCall = !$._initializing;\n uint64 initialized = $._initialized;\n\n // Allowed calls:\n // - initialSetup: the contract is not in the initializing state and no previous version was\n // initialized\n // - construction: the contract is initialized at version 1 (no reininitialization) and the\n // current contract is just being deployed\n bool initialSetup = initialized == 0 && isTopLevelCall;\n bool construction = initialized == 1 && address(this).code.length == 0;\n\n if (!initialSetup && !construction) {\n revert InvalidInitialization();\n }\n $._initialized = 1;\n if (isTopLevelCall) {\n $._initializing = true;\n }\n _;\n if (isTopLevelCall) {\n $._initializing = false;\n emit Initialized(1);\n }\n }\n\n /**\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n * used to initialize parent contracts.\n *\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n * are added through upgrades and that require initialization.\n *\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n * cannot be nested. If one is invoked in the context of another, execution will revert.\n *\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n * a contract, executing them in the right order is up to the developer or operator.\n *\n * WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n *\n * Emits an {Initialized} event.\n */\n modifier reinitializer(uint64 version) {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing || $._initialized >= version) {\n revert InvalidInitialization();\n }\n $._initialized = version;\n $._initializing = true;\n _;\n $._initializing = false;\n emit Initialized(version);\n }\n\n /**\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\n */\n modifier onlyInitializing() {\n _checkInitializing();\n _;\n }\n\n /**\n * @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.\n */\n function _checkInitializing() internal view virtual {\n if (!_isInitializing()) {\n revert NotInitializing();\n }\n }\n\n /**\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n * through proxies.\n *\n * Emits an {Initialized} event the first time it is successfully executed.\n */\n function _disableInitializers() internal virtual {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing) {\n revert InvalidInitialization();\n }\n if ($._initialized != type(uint64).max) {\n $._initialized = type(uint64).max;\n emit Initialized(type(uint64).max);\n }\n }\n\n /**\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\n */\n function _getInitializedVersion() internal view returns (uint64) {\n return _getInitializableStorage()._initialized;\n }\n\n /**\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n */\n function _isInitializing() internal view returns (bool) {\n return _getInitializableStorage()._initializing;\n }\n\n /**\n * @dev Returns a pointer to the storage namespace.\n */\n // solhint-disable-next-line var-name-mixedcase\n function _getInitializableStorage() private pure returns (InitializableStorage storage $) {\n assembly {\n $.slot := INITIALIZABLE_STORAGE\n }\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract ContextUpgradeable is Initializable {\n function __Context_init() internal onlyInitializing {\n }\n\n function __Context_init_unchained() internal onlyInitializing {\n }\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "@openzeppelin/contracts/access/AccessControl.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControl} from \"./IAccessControl.sol\";\nimport {Context} from \"../utils/Context.sol\";\nimport {ERC165} from \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```solidity\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```solidity\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n * to enforce additional security measures for this role.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n struct RoleData {\n mapping(address account => bool) hasRole;\n bytes32 adminRole;\n }\n\n mapping(bytes32 role => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Modifier that checks that an account has a specific role. Reverts\n * with an {AccessControlUnauthorizedAccount} error including the required role.\n */\n modifier onlyRole(bytes32 role) {\n _checkRole(role);\n _;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view virtual returns (bool) {\n return _roles[role].hasRole[account];\n }\n\n /**\n * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n * is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier.\n */\n function _checkRole(bytes32 role) internal view virtual {\n _checkRole(role, _msgSender());\n }\n\n /**\n * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n * is missing `role`.\n */\n function _checkRole(bytes32 role, address account) internal view virtual {\n if (!hasRole(role, account)) {\n revert AccessControlUnauthorizedAccount(account, role);\n }\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleGranted} event.\n */\n function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleRevoked} event.\n */\n function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n *\n * May emit a {RoleRevoked} event.\n */\n function renounceRole(bytes32 role, address callerConfirmation) public virtual {\n if (callerConfirmation != _msgSender()) {\n revert AccessControlBadConfirmation();\n }\n\n _revokeRole(role, callerConfirmation);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n bytes32 previousAdminRole = getRoleAdmin(role);\n _roles[role].adminRole = adminRole;\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\n }\n\n /**\n * @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleGranted} event.\n */\n function _grantRole(bytes32 role, address account) internal virtual returns (bool) {\n if (!hasRole(role, account)) {\n _roles[role].hasRole[account] = true;\n emit RoleGranted(role, account, _msgSender());\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleRevoked} event.\n */\n function _revokeRole(bytes32 role, address account) internal virtual returns (bool) {\n if (hasRole(role, account)) {\n _roles[role].hasRole[account] = false;\n emit RoleRevoked(role, account, _msgSender());\n return true;\n } else {\n return false;\n }\n }\n}\n" + }, + "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/extensions/AccessControlDefaultAdminRules.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControlDefaultAdminRules} from \"./IAccessControlDefaultAdminRules.sol\";\nimport {AccessControl, IAccessControl} from \"../AccessControl.sol\";\nimport {SafeCast} from \"../../utils/math/SafeCast.sol\";\nimport {Math} from \"../../utils/math/Math.sol\";\nimport {IERC5313} from \"../../interfaces/IERC5313.sol\";\n\n/**\n * @dev Extension of {AccessControl} that allows specifying special rules to manage\n * the `DEFAULT_ADMIN_ROLE` holder, which is a sensitive role with special permissions\n * over other roles that may potentially have privileged rights in the system.\n *\n * If a specific role doesn't have an admin role assigned, the holder of the\n * `DEFAULT_ADMIN_ROLE` will have the ability to grant it and revoke it.\n *\n * This contract implements the following risk mitigations on top of {AccessControl}:\n *\n * * Only one account holds the `DEFAULT_ADMIN_ROLE` since deployment until it's potentially renounced.\n * * Enforces a 2-step process to transfer the `DEFAULT_ADMIN_ROLE` to another account.\n * * Enforces a configurable delay between the two steps, with the ability to cancel before the transfer is accepted.\n * * The delay can be changed by scheduling, see {changeDefaultAdminDelay}.\n * * It is not possible to use another role to manage the `DEFAULT_ADMIN_ROLE`.\n *\n * Example usage:\n *\n * ```solidity\n * contract MyToken is AccessControlDefaultAdminRules {\n * constructor() AccessControlDefaultAdminRules(\n * 3 days,\n * msg.sender // Explicit initial `DEFAULT_ADMIN_ROLE` holder\n * ) {}\n * }\n * ```\n */\nabstract contract AccessControlDefaultAdminRules is IAccessControlDefaultAdminRules, IERC5313, AccessControl {\n // pending admin pair read/written together frequently\n address private _pendingDefaultAdmin;\n uint48 private _pendingDefaultAdminSchedule; // 0 == unset\n\n uint48 private _currentDelay;\n address private _currentDefaultAdmin;\n\n // pending delay pair read/written together frequently\n uint48 private _pendingDelay;\n uint48 private _pendingDelaySchedule; // 0 == unset\n\n /**\n * @dev Sets the initial values for {defaultAdminDelay} and {defaultAdmin} address.\n */\n constructor(uint48 initialDelay, address initialDefaultAdmin) {\n if (initialDefaultAdmin == address(0)) {\n revert AccessControlInvalidDefaultAdmin(address(0));\n }\n _currentDelay = initialDelay;\n _grantRole(DEFAULT_ADMIN_ROLE, initialDefaultAdmin);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControlDefaultAdminRules).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC5313-owner}.\n */\n function owner() public view virtual returns (address) {\n return defaultAdmin();\n }\n\n ///\n /// Override AccessControl role management\n ///\n\n /**\n * @dev See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\n */\n function grantRole(bytes32 role, address account) public virtual override(AccessControl, IAccessControl) {\n if (role == DEFAULT_ADMIN_ROLE) {\n revert AccessControlEnforcedDefaultAdminRules();\n }\n super.grantRole(role, account);\n }\n\n /**\n * @dev See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\n */\n function revokeRole(bytes32 role, address account) public virtual override(AccessControl, IAccessControl) {\n if (role == DEFAULT_ADMIN_ROLE) {\n revert AccessControlEnforcedDefaultAdminRules();\n }\n super.revokeRole(role, account);\n }\n\n /**\n * @dev See {AccessControl-renounceRole}.\n *\n * For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling\n * {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule\n * has also passed when calling this function.\n *\n * After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions.\n *\n * NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin},\n * thereby disabling any functionality that is only available for it, and the possibility of reassigning a\n * non-administrated role.\n */\n function renounceRole(bytes32 role, address account) public virtual override(AccessControl, IAccessControl) {\n if (role == DEFAULT_ADMIN_ROLE && account == defaultAdmin()) {\n (address newDefaultAdmin, uint48 schedule) = pendingDefaultAdmin();\n if (newDefaultAdmin != address(0) || !_isScheduleSet(schedule) || !_hasSchedulePassed(schedule)) {\n revert AccessControlEnforcedDefaultAdminDelay(schedule);\n }\n delete _pendingDefaultAdminSchedule;\n }\n super.renounceRole(role, account);\n }\n\n /**\n * @dev See {AccessControl-_grantRole}.\n *\n * For `DEFAULT_ADMIN_ROLE`, it only allows granting if there isn't already a {defaultAdmin} or if the\n * role has been previously renounced.\n *\n * NOTE: Exposing this function through another mechanism may make the `DEFAULT_ADMIN_ROLE`\n * assignable again. Make sure to guarantee this is the expected behavior in your implementation.\n */\n function _grantRole(bytes32 role, address account) internal virtual override returns (bool) {\n if (role == DEFAULT_ADMIN_ROLE) {\n if (defaultAdmin() != address(0)) {\n revert AccessControlEnforcedDefaultAdminRules();\n }\n _currentDefaultAdmin = account;\n }\n return super._grantRole(role, account);\n }\n\n /**\n * @dev See {AccessControl-_revokeRole}.\n */\n function _revokeRole(bytes32 role, address account) internal virtual override returns (bool) {\n if (role == DEFAULT_ADMIN_ROLE && account == defaultAdmin()) {\n delete _currentDefaultAdmin;\n }\n return super._revokeRole(role, account);\n }\n\n /**\n * @dev See {AccessControl-_setRoleAdmin}. Reverts for `DEFAULT_ADMIN_ROLE`.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual override {\n if (role == DEFAULT_ADMIN_ROLE) {\n revert AccessControlEnforcedDefaultAdminRules();\n }\n super._setRoleAdmin(role, adminRole);\n }\n\n ///\n /// AccessControlDefaultAdminRules accessors\n ///\n\n /**\n * @inheritdoc IAccessControlDefaultAdminRules\n */\n function defaultAdmin() public view virtual returns (address) {\n return _currentDefaultAdmin;\n }\n\n /**\n * @inheritdoc IAccessControlDefaultAdminRules\n */\n function pendingDefaultAdmin() public view virtual returns (address newAdmin, uint48 schedule) {\n return (_pendingDefaultAdmin, _pendingDefaultAdminSchedule);\n }\n\n /**\n * @inheritdoc IAccessControlDefaultAdminRules\n */\n function defaultAdminDelay() public view virtual returns (uint48) {\n uint48 schedule = _pendingDelaySchedule;\n return (_isScheduleSet(schedule) && _hasSchedulePassed(schedule)) ? _pendingDelay : _currentDelay;\n }\n\n /**\n * @inheritdoc IAccessControlDefaultAdminRules\n */\n function pendingDefaultAdminDelay() public view virtual returns (uint48 newDelay, uint48 schedule) {\n schedule = _pendingDelaySchedule;\n return (_isScheduleSet(schedule) && !_hasSchedulePassed(schedule)) ? (_pendingDelay, schedule) : (0, 0);\n }\n\n /**\n * @inheritdoc IAccessControlDefaultAdminRules\n */\n function defaultAdminDelayIncreaseWait() public view virtual returns (uint48) {\n return 5 days;\n }\n\n ///\n /// AccessControlDefaultAdminRules public and internal setters for defaultAdmin/pendingDefaultAdmin\n ///\n\n /**\n * @inheritdoc IAccessControlDefaultAdminRules\n */\n function beginDefaultAdminTransfer(address newAdmin) public virtual onlyRole(DEFAULT_ADMIN_ROLE) {\n _beginDefaultAdminTransfer(newAdmin);\n }\n\n /**\n * @dev See {beginDefaultAdminTransfer}.\n *\n * Internal function without access restriction.\n */\n function _beginDefaultAdminTransfer(address newAdmin) internal virtual {\n uint48 newSchedule = SafeCast.toUint48(block.timestamp) + defaultAdminDelay();\n _setPendingDefaultAdmin(newAdmin, newSchedule);\n emit DefaultAdminTransferScheduled(newAdmin, newSchedule);\n }\n\n /**\n * @inheritdoc IAccessControlDefaultAdminRules\n */\n function cancelDefaultAdminTransfer() public virtual onlyRole(DEFAULT_ADMIN_ROLE) {\n _cancelDefaultAdminTransfer();\n }\n\n /**\n * @dev See {cancelDefaultAdminTransfer}.\n *\n * Internal function without access restriction.\n */\n function _cancelDefaultAdminTransfer() internal virtual {\n _setPendingDefaultAdmin(address(0), 0);\n }\n\n /**\n * @inheritdoc IAccessControlDefaultAdminRules\n */\n function acceptDefaultAdminTransfer() public virtual {\n (address newDefaultAdmin, ) = pendingDefaultAdmin();\n if (_msgSender() != newDefaultAdmin) {\n // Enforce newDefaultAdmin explicit acceptance.\n revert AccessControlInvalidDefaultAdmin(_msgSender());\n }\n _acceptDefaultAdminTransfer();\n }\n\n /**\n * @dev See {acceptDefaultAdminTransfer}.\n *\n * Internal function without access restriction.\n */\n function _acceptDefaultAdminTransfer() internal virtual {\n (address newAdmin, uint48 schedule) = pendingDefaultAdmin();\n if (!_isScheduleSet(schedule) || !_hasSchedulePassed(schedule)) {\n revert AccessControlEnforcedDefaultAdminDelay(schedule);\n }\n _revokeRole(DEFAULT_ADMIN_ROLE, defaultAdmin());\n _grantRole(DEFAULT_ADMIN_ROLE, newAdmin);\n delete _pendingDefaultAdmin;\n delete _pendingDefaultAdminSchedule;\n }\n\n ///\n /// AccessControlDefaultAdminRules public and internal setters for defaultAdminDelay/pendingDefaultAdminDelay\n ///\n\n /**\n * @inheritdoc IAccessControlDefaultAdminRules\n */\n function changeDefaultAdminDelay(uint48 newDelay) public virtual onlyRole(DEFAULT_ADMIN_ROLE) {\n _changeDefaultAdminDelay(newDelay);\n }\n\n /**\n * @dev See {changeDefaultAdminDelay}.\n *\n * Internal function without access restriction.\n */\n function _changeDefaultAdminDelay(uint48 newDelay) internal virtual {\n uint48 newSchedule = SafeCast.toUint48(block.timestamp) + _delayChangeWait(newDelay);\n _setPendingDelay(newDelay, newSchedule);\n emit DefaultAdminDelayChangeScheduled(newDelay, newSchedule);\n }\n\n /**\n * @inheritdoc IAccessControlDefaultAdminRules\n */\n function rollbackDefaultAdminDelay() public virtual onlyRole(DEFAULT_ADMIN_ROLE) {\n _rollbackDefaultAdminDelay();\n }\n\n /**\n * @dev See {rollbackDefaultAdminDelay}.\n *\n * Internal function without access restriction.\n */\n function _rollbackDefaultAdminDelay() internal virtual {\n _setPendingDelay(0, 0);\n }\n\n /**\n * @dev Returns the amount of seconds to wait after the `newDelay` will\n * become the new {defaultAdminDelay}.\n *\n * The value returned guarantees that if the delay is reduced, it will go into effect\n * after a wait that honors the previously set delay.\n *\n * See {defaultAdminDelayIncreaseWait}.\n */\n function _delayChangeWait(uint48 newDelay) internal view virtual returns (uint48) {\n uint48 currentDelay = defaultAdminDelay();\n\n // When increasing the delay, we schedule the delay change to occur after a period of \"new delay\" has passed, up\n // to a maximum given by defaultAdminDelayIncreaseWait, by default 5 days. For example, if increasing from 1 day\n // to 3 days, the new delay will come into effect after 3 days. If increasing from 1 day to 10 days, the new\n // delay will come into effect after 5 days. The 5 day wait period is intended to be able to fix an error like\n // using milliseconds instead of seconds.\n //\n // When decreasing the delay, we wait the difference between \"current delay\" and \"new delay\". This guarantees\n // that an admin transfer cannot be made faster than \"current delay\" at the time the delay change is scheduled.\n // For example, if decreasing from 10 days to 3 days, the new delay will come into effect after 7 days.\n return\n newDelay > currentDelay\n ? uint48(Math.min(newDelay, defaultAdminDelayIncreaseWait())) // no need to safecast, both inputs are uint48\n : currentDelay - newDelay;\n }\n\n ///\n /// Private setters\n ///\n\n /**\n * @dev Setter of the tuple for pending admin and its schedule.\n *\n * May emit a DefaultAdminTransferCanceled event.\n */\n function _setPendingDefaultAdmin(address newAdmin, uint48 newSchedule) private {\n (, uint48 oldSchedule) = pendingDefaultAdmin();\n\n _pendingDefaultAdmin = newAdmin;\n _pendingDefaultAdminSchedule = newSchedule;\n\n // An `oldSchedule` from `pendingDefaultAdmin()` is only set if it hasn't been accepted.\n if (_isScheduleSet(oldSchedule)) {\n // Emit for implicit cancellations when another default admin was scheduled.\n emit DefaultAdminTransferCanceled();\n }\n }\n\n /**\n * @dev Setter of the tuple for pending delay and its schedule.\n *\n * May emit a DefaultAdminDelayChangeCanceled event.\n */\n function _setPendingDelay(uint48 newDelay, uint48 newSchedule) private {\n uint48 oldSchedule = _pendingDelaySchedule;\n\n if (_isScheduleSet(oldSchedule)) {\n if (_hasSchedulePassed(oldSchedule)) {\n // Materialize a virtual delay\n _currentDelay = _pendingDelay;\n } else {\n // Emit for implicit cancellations when another delay was scheduled.\n emit DefaultAdminDelayChangeCanceled();\n }\n }\n\n _pendingDelay = newDelay;\n _pendingDelaySchedule = newSchedule;\n }\n\n ///\n /// Private helpers\n ///\n\n /**\n * @dev Defines if an `schedule` is considered set. For consistency purposes.\n */\n function _isScheduleSet(uint48 schedule) private pure returns (bool) {\n return schedule != 0;\n }\n\n /**\n * @dev Defines if an `schedule` is considered passed. For consistency purposes.\n */\n function _hasSchedulePassed(uint48 schedule) private view returns (bool) {\n return schedule < block.timestamp;\n }\n}\n" + }, + "@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/extensions/IAccessControlDefaultAdminRules.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControl} from \"../IAccessControl.sol\";\n\n/**\n * @dev External interface of AccessControlDefaultAdminRules declared to support ERC165 detection.\n */\ninterface IAccessControlDefaultAdminRules is IAccessControl {\n /**\n * @dev The new default admin is not a valid default admin.\n */\n error AccessControlInvalidDefaultAdmin(address defaultAdmin);\n\n /**\n * @dev At least one of the following rules was violated:\n *\n * - The `DEFAULT_ADMIN_ROLE` must only be managed by itself.\n * - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time.\n * - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\n */\n error AccessControlEnforcedDefaultAdminRules();\n\n /**\n * @dev The delay for transferring the default admin delay is enforced and\n * the operation must wait until `schedule`.\n *\n * NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\n */\n error AccessControlEnforcedDefaultAdminDelay(uint48 schedule);\n\n /**\n * @dev Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next\n * address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule`\n * passes.\n */\n event DefaultAdminTransferScheduled(address indexed newAdmin, uint48 acceptSchedule);\n\n /**\n * @dev Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\n */\n event DefaultAdminTransferCanceled();\n\n /**\n * @dev Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next\n * delay to be applied between default admin transfer after `effectSchedule` has passed.\n */\n event DefaultAdminDelayChangeScheduled(uint48 newDelay, uint48 effectSchedule);\n\n /**\n * @dev Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\n */\n event DefaultAdminDelayChangeCanceled();\n\n /**\n * @dev Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\n */\n function defaultAdmin() external view returns (address);\n\n /**\n * @dev Returns a tuple of a `newAdmin` and an accept schedule.\n *\n * After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role\n * by calling {acceptDefaultAdminTransfer}, completing the role transfer.\n *\n * A zero value only in `acceptSchedule` indicates no pending admin transfer.\n *\n * NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\n */\n function pendingDefaultAdmin() external view returns (address newAdmin, uint48 acceptSchedule);\n\n /**\n * @dev Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started.\n *\n * This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set\n * the acceptance schedule.\n *\n * NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this\n * function returns the new delay. See {changeDefaultAdminDelay}.\n */\n function defaultAdminDelay() external view returns (uint48);\n\n /**\n * @dev Returns a tuple of `newDelay` and an effect schedule.\n *\n * After the `schedule` passes, the `newDelay` will get into effect immediately for every\n * new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}.\n *\n * A zero value only in `effectSchedule` indicates no pending delay change.\n *\n * NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay}\n * will be zero after the effect schedule.\n */\n function pendingDefaultAdminDelay() external view returns (uint48 newDelay, uint48 effectSchedule);\n\n /**\n * @dev Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance\n * after the current timestamp plus a {defaultAdminDelay}.\n *\n * Requirements:\n *\n * - Only can be called by the current {defaultAdmin}.\n *\n * Emits a DefaultAdminRoleChangeStarted event.\n */\n function beginDefaultAdminTransfer(address newAdmin) external;\n\n /**\n * @dev Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}.\n *\n * A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function.\n *\n * Requirements:\n *\n * - Only can be called by the current {defaultAdmin}.\n *\n * May emit a DefaultAdminTransferCanceled event.\n */\n function cancelDefaultAdminTransfer() external;\n\n /**\n * @dev Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}.\n *\n * After calling the function:\n *\n * - `DEFAULT_ADMIN_ROLE` should be granted to the caller.\n * - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder.\n * - {pendingDefaultAdmin} should be reset to zero values.\n *\n * Requirements:\n *\n * - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`.\n * - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\n */\n function acceptDefaultAdminTransfer() external;\n\n /**\n * @dev Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting\n * into effect after the current timestamp plus a {defaultAdminDelay}.\n *\n * This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this\n * method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay}\n * set before calling.\n *\n * The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then\n * calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin}\n * complete transfer (including acceptance).\n *\n * The schedule is designed for two scenarios:\n *\n * - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by\n * {defaultAdminDelayIncreaseWait}.\n * - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`.\n *\n * A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change.\n *\n * Requirements:\n *\n * - Only can be called by the current {defaultAdmin}.\n *\n * Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\n */\n function changeDefaultAdminDelay(uint48 newDelay) external;\n\n /**\n * @dev Cancels a scheduled {defaultAdminDelay} change.\n *\n * Requirements:\n *\n * - Only can be called by the current {defaultAdmin}.\n *\n * May emit a DefaultAdminDelayChangeCanceled event.\n */\n function rollbackDefaultAdminDelay() external;\n\n /**\n * @dev Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay})\n * to take effect. Default to 5 days.\n *\n * When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with\n * the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds)\n * that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can\n * be overrode for a custom {defaultAdminDelay} increase scheduling.\n *\n * IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise,\n * there's a risk of setting a high new delay that goes into effect almost immediately without the\n * possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\n */\n function defaultAdminDelayIncreaseWait() external view returns (uint48);\n}\n" + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/IAccessControl.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n /**\n * @dev The `account` is missing a role.\n */\n error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);\n\n /**\n * @dev The caller of a function is not the expected one.\n *\n * NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\n */\n error AccessControlBadConfirmation();\n\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {AccessControl-_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) external view returns (bool);\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n */\n function renounceRole(bytes32 role, address callerConfirmation) external;\n}\n" + }, + "@openzeppelin/contracts/access/Ownable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts/interfaces/IERC1967.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1967.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\n */\ninterface IERC1967 {\n /**\n * @dev Emitted when the implementation is upgraded.\n */\n event Upgraded(address indexed implementation);\n\n /**\n * @dev Emitted when the admin account has changed.\n */\n event AdminChanged(address previousAdmin, address newAdmin);\n\n /**\n * @dev Emitted when the beacon is changed.\n */\n event BeaconUpgraded(address indexed beacon);\n}\n" + }, + "@openzeppelin/contracts/interfaces/IERC5313.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC5313.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface for the Light Contract Ownership Standard.\n *\n * A standardized minimal interface required to identify an account that controls a contract\n */\ninterface IERC5313 {\n /**\n * @dev Gets the address of the owner.\n */\n function owner() external view returns (address);\n}\n" + }, + "@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/IBeacon.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeacon {\n /**\n * @dev Must return an address that can be used as a delegate call target.\n *\n * {UpgradeableBeacon} will check that this address is a contract.\n */\n function implementation() external view returns (address);\n}\n" + }, + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.20;\n\nimport {Proxy} from \"../Proxy.sol\";\nimport {ERC1967Utils} from \"./ERC1967Utils.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy {\n /**\n * @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n *\n * If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an\n * encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\n *\n * Requirements:\n *\n * - If `data` is empty, `msg.value` must be zero.\n */\n constructor(address implementation, bytes memory _data) payable {\n ERC1967Utils.upgradeToAndCall(implementation, _data);\n }\n\n /**\n * @dev Returns the current implementation address.\n *\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n */\n function _implementation() internal view virtual override returns (address) {\n return ERC1967Utils.getImplementation();\n }\n}\n" + }, + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Utils.sol)\n\npragma solidity ^0.8.20;\n\nimport {IBeacon} from \"../beacon/IBeacon.sol\";\nimport {Address} from \"../../utils/Address.sol\";\nimport {StorageSlot} from \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This abstract contract provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n */\nlibrary ERC1967Utils {\n // We re-declare ERC-1967 events here because they can't be used directly from IERC1967.\n // This will be fixed in Solidity 0.8.21. At that point we should remove these events.\n /**\n * @dev Emitted when the implementation is upgraded.\n */\n event Upgraded(address indexed implementation);\n\n /**\n * @dev Emitted when the admin account has changed.\n */\n event AdminChanged(address previousAdmin, address newAdmin);\n\n /**\n * @dev Emitted when the beacon is changed.\n */\n event BeaconUpgraded(address indexed beacon);\n\n /**\n * @dev Storage slot with the address of the current implementation.\n * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1.\n */\n // solhint-disable-next-line private-vars-leading-underscore\n bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n /**\n * @dev The `implementation` of the proxy is invalid.\n */\n error ERC1967InvalidImplementation(address implementation);\n\n /**\n * @dev The `admin` of the proxy is invalid.\n */\n error ERC1967InvalidAdmin(address admin);\n\n /**\n * @dev The `beacon` of the proxy is invalid.\n */\n error ERC1967InvalidBeacon(address beacon);\n\n /**\n * @dev An upgrade function sees `msg.value > 0` that may be lost.\n */\n error ERC1967NonPayable();\n\n /**\n * @dev Returns the current implementation address.\n */\n function getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the EIP1967 implementation slot.\n */\n function _setImplementation(address newImplementation) private {\n if (newImplementation.code.length == 0) {\n revert ERC1967InvalidImplementation(newImplementation);\n }\n StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value = newImplementation;\n }\n\n /**\n * @dev Performs implementation upgrade with additional setup call if data is nonempty.\n * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n * to avoid stuck value in the contract.\n *\n * Emits an {IERC1967-Upgraded} event.\n */\n function upgradeToAndCall(address newImplementation, bytes memory data) internal {\n _setImplementation(newImplementation);\n emit Upgraded(newImplementation);\n\n if (data.length > 0) {\n Address.functionDelegateCall(newImplementation, data);\n } else {\n _checkNonPayable();\n }\n }\n\n /**\n * @dev Storage slot with the admin of the contract.\n * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1.\n */\n // solhint-disable-next-line private-vars-leading-underscore\n bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n /**\n * @dev Returns the current admin.\n *\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n */\n function getAdmin() internal view returns (address) {\n return StorageSlot.getAddressSlot(ADMIN_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the EIP1967 admin slot.\n */\n function _setAdmin(address newAdmin) private {\n if (newAdmin == address(0)) {\n revert ERC1967InvalidAdmin(address(0));\n }\n StorageSlot.getAddressSlot(ADMIN_SLOT).value = newAdmin;\n }\n\n /**\n * @dev Changes the admin of the proxy.\n *\n * Emits an {IERC1967-AdminChanged} event.\n */\n function changeAdmin(address newAdmin) internal {\n emit AdminChanged(getAdmin(), newAdmin);\n _setAdmin(newAdmin);\n }\n\n /**\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n * This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1.\n */\n // solhint-disable-next-line private-vars-leading-underscore\n bytes32 internal constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n /**\n * @dev Returns the current beacon.\n */\n function getBeacon() internal view returns (address) {\n return StorageSlot.getAddressSlot(BEACON_SLOT).value;\n }\n\n /**\n * @dev Stores a new beacon in the EIP1967 beacon slot.\n */\n function _setBeacon(address newBeacon) private {\n if (newBeacon.code.length == 0) {\n revert ERC1967InvalidBeacon(newBeacon);\n }\n\n StorageSlot.getAddressSlot(BEACON_SLOT).value = newBeacon;\n\n address beaconImplementation = IBeacon(newBeacon).implementation();\n if (beaconImplementation.code.length == 0) {\n revert ERC1967InvalidImplementation(beaconImplementation);\n }\n }\n\n /**\n * @dev Change the beacon and trigger a setup call if data is nonempty.\n * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n * to avoid stuck value in the contract.\n *\n * Emits an {IERC1967-BeaconUpgraded} event.\n *\n * CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since\n * it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for\n * efficiency.\n */\n function upgradeBeaconToAndCall(address newBeacon, bytes memory data) internal {\n _setBeacon(newBeacon);\n emit BeaconUpgraded(newBeacon);\n\n if (data.length > 0) {\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n } else {\n _checkNonPayable();\n }\n }\n\n /**\n * @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract\n * if an upgrade doesn't perform an initialization call.\n */\n function _checkNonPayable() private {\n if (msg.value > 0) {\n revert ERC1967NonPayable();\n }\n }\n}\n" + }, + "@openzeppelin/contracts/proxy/Proxy.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/Proxy.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n * be specified by overriding the virtual {_implementation} function.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\nabstract contract Proxy {\n /**\n * @dev Delegates the current call to `implementation`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n */\n function _delegate(address implementation) internal virtual {\n assembly {\n // Copy msg.data. We take full control of memory in this inline assembly\n // block because it will not return to Solidity code. We overwrite the\n // Solidity scratch pad at memory position 0.\n calldatacopy(0, 0, calldatasize())\n\n // Call the implementation.\n // out and outsize are 0 because we don't know the size yet.\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n // Copy the returned data.\n returndatacopy(0, 0, returndatasize())\n\n switch result\n // delegatecall returns 0 on error.\n case 0 {\n revert(0, returndatasize())\n }\n default {\n return(0, returndatasize())\n }\n }\n }\n\n /**\n * @dev This is a virtual function that should be overridden so it returns the address to which the fallback\n * function and {_fallback} should delegate.\n */\n function _implementation() internal view virtual returns (address);\n\n /**\n * @dev Delegates the current call to the address returned by `_implementation()`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n */\n function _fallback() internal virtual {\n _delegate(_implementation());\n }\n\n /**\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n * function in the contract matches the call data.\n */\n fallback() external payable virtual {\n _fallback();\n }\n}\n" + }, + "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/transparent/ProxyAdmin.sol)\n\npragma solidity ^0.8.20;\n\nimport {ITransparentUpgradeableProxy} from \"./TransparentUpgradeableProxy.sol\";\nimport {Ownable} from \"../../access/Ownable.sol\";\n\n/**\n * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\n */\ncontract ProxyAdmin is Ownable {\n /**\n * @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address)`\n * and `upgradeAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called,\n * while `upgradeAndCall` will invoke the `receive` function if the second argument is the empty byte string.\n * If the getter returns `\"5.0.0\"`, only `upgradeAndCall(address,bytes)` is present, and the second argument must\n * be the empty byte string if no function should be called, making it impossible to invoke the `receive` function\n * during an upgrade.\n */\n string public constant UPGRADE_INTERFACE_VERSION = \"5.0.0\";\n\n /**\n * @dev Sets the initial owner who can perform upgrades.\n */\n constructor(address initialOwner) Ownable(initialOwner) {}\n\n /**\n * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation.\n * See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}.\n *\n * Requirements:\n *\n * - This contract must be the admin of `proxy`.\n * - If `data` is empty, `msg.value` must be zero.\n */\n function upgradeAndCall(\n ITransparentUpgradeableProxy proxy,\n address implementation,\n bytes memory data\n ) public payable virtual onlyOwner {\n proxy.upgradeToAndCall{value: msg.value}(implementation, data);\n }\n}\n" + }, + "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/transparent/TransparentUpgradeableProxy.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC1967Utils} from \"../ERC1967/ERC1967Utils.sol\";\nimport {ERC1967Proxy} from \"../ERC1967/ERC1967Proxy.sol\";\nimport {IERC1967} from \"../../interfaces/IERC1967.sol\";\nimport {ProxyAdmin} from \"./ProxyAdmin.sol\";\n\n/**\n * @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\n * does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch\n * mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\n * include them in the ABI so this interface must be used to interact with it.\n */\ninterface ITransparentUpgradeableProxy is IERC1967 {\n function upgradeToAndCall(address, bytes calldata) external payable;\n}\n\n/**\n * @dev This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to\n * the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating\n * the proxy admin cannot fallback to the target implementation.\n *\n * These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a\n * dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to\n * call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and\n * allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative\n * interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership.\n *\n * NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\n * inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch\n * mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\n * fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\n * implementation.\n *\n * NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a\n * meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract.\n *\n * IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an\n * immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be\n * overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an\n * undesirable state where the admin slot is different from the actual admin.\n *\n * WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the\n * compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new\n * function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This\n * could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency.\n */\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\n // An immutable address for the admin to avoid unnecessary SLOADs before each call\n // at the expense of removing the ability to change the admin once it's set.\n // This is acceptable if the admin is always a ProxyAdmin instance or similar contract\n // with its own ability to transfer the permissions to another account.\n address private immutable _admin;\n\n /**\n * @dev The proxy caller is the current admin, and can't fallback to the proxy target.\n */\n error ProxyDeniedAdminAccess();\n\n /**\n * @dev Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`,\n * backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in\n * {ERC1967Proxy-constructor}.\n */\n constructor(address _logic, address initialOwner, bytes memory _data) payable ERC1967Proxy(_logic, _data) {\n _admin = address(new ProxyAdmin(initialOwner));\n // Set the storage value and emit an event for ERC-1967 compatibility\n ERC1967Utils.changeAdmin(_proxyAdmin());\n }\n\n /**\n * @dev Returns the admin of this proxy.\n */\n function _proxyAdmin() internal virtual returns (address) {\n return _admin;\n }\n\n /**\n * @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior.\n */\n function _fallback() internal virtual override {\n if (msg.sender == _proxyAdmin()) {\n if (msg.sig != ITransparentUpgradeableProxy.upgradeToAndCall.selector) {\n revert ProxyDeniedAdminAccess();\n } else {\n _dispatchUpgradeToAndCall();\n }\n } else {\n super._fallback();\n }\n }\n\n /**\n * @dev Upgrade the implementation of the proxy. See {ERC1967Utils-upgradeToAndCall}.\n *\n * Requirements:\n *\n * - If `data` is empty, `msg.value` must be zero.\n */\n function _dispatchUpgradeToAndCall() private {\n (address newImplementation, bytes memory data) = abi.decode(msg.data[4:], (address, bytes));\n ERC1967Utils.upgradeToAndCall(newImplementation, data);\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Address.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev The ETH balance of the account is not enough to perform the operation.\n */\n error AddressInsufficientBalance(address account);\n\n /**\n * @dev There's no code at `target` (it is not a contract).\n */\n error AddressEmptyCode(address target);\n\n /**\n * @dev A call to an address target failed. The target may have reverted.\n */\n error FailedInnerCall();\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n if (address(this).balance < amount) {\n revert AddressInsufficientBalance(address(this));\n }\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n if (!success) {\n revert FailedInnerCall();\n }\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason or custom error, it is bubbled\n * up by this function (like regular Solidity function calls). However, if\n * the call reverted with no returned reason, this function reverts with a\n * {FailedInnerCall} error.\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n if (address(this).balance < value) {\n revert AddressInsufficientBalance(address(this));\n }\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\n * unsuccessful call.\n */\n function verifyCallResultFromTarget(\n address target,\n bool success,\n bytes memory returndata\n ) internal view returns (bytes memory) {\n if (!success) {\n _revert(returndata);\n } else {\n // only check if target is a contract if the call was successful and the return data is empty\n // otherwise we already know that it was a contract\n if (returndata.length == 0 && target.code.length == 0) {\n revert AddressEmptyCode(target);\n }\n return returndata;\n }\n }\n\n /**\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n * revert reason or with a default {FailedInnerCall} error.\n */\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\n if (!success) {\n _revert(returndata);\n } else {\n return returndata;\n }\n }\n\n /**\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\n */\n function _revert(bytes memory returndata) private pure {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert FailedInnerCall();\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/math/SafeCast.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeCast {\n /**\n * @dev Value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\n\n /**\n * @dev An int value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedIntToUint(int256 value);\n\n /**\n * @dev Value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\n\n /**\n * @dev An uint value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedUintToInt(uint256 value);\n\n /**\n * @dev Returns the downcasted uint248 from uint256, reverting on\n * overflow (when the input is greater than largest uint248).\n *\n * Counterpart to Solidity's `uint248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toUint248(uint256 value) internal pure returns (uint248) {\n if (value > type(uint248).max) {\n revert SafeCastOverflowedUintDowncast(248, value);\n }\n return uint248(value);\n }\n\n /**\n * @dev Returns the downcasted uint240 from uint256, reverting on\n * overflow (when the input is greater than largest uint240).\n *\n * Counterpart to Solidity's `uint240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toUint240(uint256 value) internal pure returns (uint240) {\n if (value > type(uint240).max) {\n revert SafeCastOverflowedUintDowncast(240, value);\n }\n return uint240(value);\n }\n\n /**\n * @dev Returns the downcasted uint232 from uint256, reverting on\n * overflow (when the input is greater than largest uint232).\n *\n * Counterpart to Solidity's `uint232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toUint232(uint256 value) internal pure returns (uint232) {\n if (value > type(uint232).max) {\n revert SafeCastOverflowedUintDowncast(232, value);\n }\n return uint232(value);\n }\n\n /**\n * @dev Returns the downcasted uint224 from uint256, reverting on\n * overflow (when the input is greater than largest uint224).\n *\n * Counterpart to Solidity's `uint224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toUint224(uint256 value) internal pure returns (uint224) {\n if (value > type(uint224).max) {\n revert SafeCastOverflowedUintDowncast(224, value);\n }\n return uint224(value);\n }\n\n /**\n * @dev Returns the downcasted uint216 from uint256, reverting on\n * overflow (when the input is greater than largest uint216).\n *\n * Counterpart to Solidity's `uint216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toUint216(uint256 value) internal pure returns (uint216) {\n if (value > type(uint216).max) {\n revert SafeCastOverflowedUintDowncast(216, value);\n }\n return uint216(value);\n }\n\n /**\n * @dev Returns the downcasted uint208 from uint256, reverting on\n * overflow (when the input is greater than largest uint208).\n *\n * Counterpart to Solidity's `uint208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toUint208(uint256 value) internal pure returns (uint208) {\n if (value > type(uint208).max) {\n revert SafeCastOverflowedUintDowncast(208, value);\n }\n return uint208(value);\n }\n\n /**\n * @dev Returns the downcasted uint200 from uint256, reverting on\n * overflow (when the input is greater than largest uint200).\n *\n * Counterpart to Solidity's `uint200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toUint200(uint256 value) internal pure returns (uint200) {\n if (value > type(uint200).max) {\n revert SafeCastOverflowedUintDowncast(200, value);\n }\n return uint200(value);\n }\n\n /**\n * @dev Returns the downcasted uint192 from uint256, reverting on\n * overflow (when the input is greater than largest uint192).\n *\n * Counterpart to Solidity's `uint192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toUint192(uint256 value) internal pure returns (uint192) {\n if (value > type(uint192).max) {\n revert SafeCastOverflowedUintDowncast(192, value);\n }\n return uint192(value);\n }\n\n /**\n * @dev Returns the downcasted uint184 from uint256, reverting on\n * overflow (when the input is greater than largest uint184).\n *\n * Counterpart to Solidity's `uint184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toUint184(uint256 value) internal pure returns (uint184) {\n if (value > type(uint184).max) {\n revert SafeCastOverflowedUintDowncast(184, value);\n }\n return uint184(value);\n }\n\n /**\n * @dev Returns the downcasted uint176 from uint256, reverting on\n * overflow (when the input is greater than largest uint176).\n *\n * Counterpart to Solidity's `uint176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toUint176(uint256 value) internal pure returns (uint176) {\n if (value > type(uint176).max) {\n revert SafeCastOverflowedUintDowncast(176, value);\n }\n return uint176(value);\n }\n\n /**\n * @dev Returns the downcasted uint168 from uint256, reverting on\n * overflow (when the input is greater than largest uint168).\n *\n * Counterpart to Solidity's `uint168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toUint168(uint256 value) internal pure returns (uint168) {\n if (value > type(uint168).max) {\n revert SafeCastOverflowedUintDowncast(168, value);\n }\n return uint168(value);\n }\n\n /**\n * @dev Returns the downcasted uint160 from uint256, reverting on\n * overflow (when the input is greater than largest uint160).\n *\n * Counterpart to Solidity's `uint160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toUint160(uint256 value) internal pure returns (uint160) {\n if (value > type(uint160).max) {\n revert SafeCastOverflowedUintDowncast(160, value);\n }\n return uint160(value);\n }\n\n /**\n * @dev Returns the downcasted uint152 from uint256, reverting on\n * overflow (when the input is greater than largest uint152).\n *\n * Counterpart to Solidity's `uint152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toUint152(uint256 value) internal pure returns (uint152) {\n if (value > type(uint152).max) {\n revert SafeCastOverflowedUintDowncast(152, value);\n }\n return uint152(value);\n }\n\n /**\n * @dev Returns the downcasted uint144 from uint256, reverting on\n * overflow (when the input is greater than largest uint144).\n *\n * Counterpart to Solidity's `uint144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toUint144(uint256 value) internal pure returns (uint144) {\n if (value > type(uint144).max) {\n revert SafeCastOverflowedUintDowncast(144, value);\n }\n return uint144(value);\n }\n\n /**\n * @dev Returns the downcasted uint136 from uint256, reverting on\n * overflow (when the input is greater than largest uint136).\n *\n * Counterpart to Solidity's `uint136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toUint136(uint256 value) internal pure returns (uint136) {\n if (value > type(uint136).max) {\n revert SafeCastOverflowedUintDowncast(136, value);\n }\n return uint136(value);\n }\n\n /**\n * @dev Returns the downcasted uint128 from uint256, reverting on\n * overflow (when the input is greater than largest uint128).\n *\n * Counterpart to Solidity's `uint128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toUint128(uint256 value) internal pure returns (uint128) {\n if (value > type(uint128).max) {\n revert SafeCastOverflowedUintDowncast(128, value);\n }\n return uint128(value);\n }\n\n /**\n * @dev Returns the downcasted uint120 from uint256, reverting on\n * overflow (when the input is greater than largest uint120).\n *\n * Counterpart to Solidity's `uint120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toUint120(uint256 value) internal pure returns (uint120) {\n if (value > type(uint120).max) {\n revert SafeCastOverflowedUintDowncast(120, value);\n }\n return uint120(value);\n }\n\n /**\n * @dev Returns the downcasted uint112 from uint256, reverting on\n * overflow (when the input is greater than largest uint112).\n *\n * Counterpart to Solidity's `uint112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toUint112(uint256 value) internal pure returns (uint112) {\n if (value > type(uint112).max) {\n revert SafeCastOverflowedUintDowncast(112, value);\n }\n return uint112(value);\n }\n\n /**\n * @dev Returns the downcasted uint104 from uint256, reverting on\n * overflow (when the input is greater than largest uint104).\n *\n * Counterpart to Solidity's `uint104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toUint104(uint256 value) internal pure returns (uint104) {\n if (value > type(uint104).max) {\n revert SafeCastOverflowedUintDowncast(104, value);\n }\n return uint104(value);\n }\n\n /**\n * @dev Returns the downcasted uint96 from uint256, reverting on\n * overflow (when the input is greater than largest uint96).\n *\n * Counterpart to Solidity's `uint96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toUint96(uint256 value) internal pure returns (uint96) {\n if (value > type(uint96).max) {\n revert SafeCastOverflowedUintDowncast(96, value);\n }\n return uint96(value);\n }\n\n /**\n * @dev Returns the downcasted uint88 from uint256, reverting on\n * overflow (when the input is greater than largest uint88).\n *\n * Counterpart to Solidity's `uint88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toUint88(uint256 value) internal pure returns (uint88) {\n if (value > type(uint88).max) {\n revert SafeCastOverflowedUintDowncast(88, value);\n }\n return uint88(value);\n }\n\n /**\n * @dev Returns the downcasted uint80 from uint256, reverting on\n * overflow (when the input is greater than largest uint80).\n *\n * Counterpart to Solidity's `uint80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toUint80(uint256 value) internal pure returns (uint80) {\n if (value > type(uint80).max) {\n revert SafeCastOverflowedUintDowncast(80, value);\n }\n return uint80(value);\n }\n\n /**\n * @dev Returns the downcasted uint72 from uint256, reverting on\n * overflow (when the input is greater than largest uint72).\n *\n * Counterpart to Solidity's `uint72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toUint72(uint256 value) internal pure returns (uint72) {\n if (value > type(uint72).max) {\n revert SafeCastOverflowedUintDowncast(72, value);\n }\n return uint72(value);\n }\n\n /**\n * @dev Returns the downcasted uint64 from uint256, reverting on\n * overflow (when the input is greater than largest uint64).\n *\n * Counterpart to Solidity's `uint64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toUint64(uint256 value) internal pure returns (uint64) {\n if (value > type(uint64).max) {\n revert SafeCastOverflowedUintDowncast(64, value);\n }\n return uint64(value);\n }\n\n /**\n * @dev Returns the downcasted uint56 from uint256, reverting on\n * overflow (when the input is greater than largest uint56).\n *\n * Counterpart to Solidity's `uint56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toUint56(uint256 value) internal pure returns (uint56) {\n if (value > type(uint56).max) {\n revert SafeCastOverflowedUintDowncast(56, value);\n }\n return uint56(value);\n }\n\n /**\n * @dev Returns the downcasted uint48 from uint256, reverting on\n * overflow (when the input is greater than largest uint48).\n *\n * Counterpart to Solidity's `uint48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toUint48(uint256 value) internal pure returns (uint48) {\n if (value > type(uint48).max) {\n revert SafeCastOverflowedUintDowncast(48, value);\n }\n return uint48(value);\n }\n\n /**\n * @dev Returns the downcasted uint40 from uint256, reverting on\n * overflow (when the input is greater than largest uint40).\n *\n * Counterpart to Solidity's `uint40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toUint40(uint256 value) internal pure returns (uint40) {\n if (value > type(uint40).max) {\n revert SafeCastOverflowedUintDowncast(40, value);\n }\n return uint40(value);\n }\n\n /**\n * @dev Returns the downcasted uint32 from uint256, reverting on\n * overflow (when the input is greater than largest uint32).\n *\n * Counterpart to Solidity's `uint32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toUint32(uint256 value) internal pure returns (uint32) {\n if (value > type(uint32).max) {\n revert SafeCastOverflowedUintDowncast(32, value);\n }\n return uint32(value);\n }\n\n /**\n * @dev Returns the downcasted uint24 from uint256, reverting on\n * overflow (when the input is greater than largest uint24).\n *\n * Counterpart to Solidity's `uint24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toUint24(uint256 value) internal pure returns (uint24) {\n if (value > type(uint24).max) {\n revert SafeCastOverflowedUintDowncast(24, value);\n }\n return uint24(value);\n }\n\n /**\n * @dev Returns the downcasted uint16 from uint256, reverting on\n * overflow (when the input is greater than largest uint16).\n *\n * Counterpart to Solidity's `uint16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toUint16(uint256 value) internal pure returns (uint16) {\n if (value > type(uint16).max) {\n revert SafeCastOverflowedUintDowncast(16, value);\n }\n return uint16(value);\n }\n\n /**\n * @dev Returns the downcasted uint8 from uint256, reverting on\n * overflow (when the input is greater than largest uint8).\n *\n * Counterpart to Solidity's `uint8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toUint8(uint256 value) internal pure returns (uint8) {\n if (value > type(uint8).max) {\n revert SafeCastOverflowedUintDowncast(8, value);\n }\n return uint8(value);\n }\n\n /**\n * @dev Converts a signed int256 into an unsigned uint256.\n *\n * Requirements:\n *\n * - input must be greater than or equal to 0.\n */\n function toUint256(int256 value) internal pure returns (uint256) {\n if (value < 0) {\n revert SafeCastOverflowedIntToUint(value);\n }\n return uint256(value);\n }\n\n /**\n * @dev Returns the downcasted int248 from int256, reverting on\n * overflow (when the input is less than smallest int248 or\n * greater than largest int248).\n *\n * Counterpart to Solidity's `int248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\n downcasted = int248(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(248, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int240 from int256, reverting on\n * overflow (when the input is less than smallest int240 or\n * greater than largest int240).\n *\n * Counterpart to Solidity's `int240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\n downcasted = int240(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(240, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int232 from int256, reverting on\n * overflow (when the input is less than smallest int232 or\n * greater than largest int232).\n *\n * Counterpart to Solidity's `int232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\n downcasted = int232(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(232, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int224 from int256, reverting on\n * overflow (when the input is less than smallest int224 or\n * greater than largest int224).\n *\n * Counterpart to Solidity's `int224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\n downcasted = int224(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(224, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int216 from int256, reverting on\n * overflow (when the input is less than smallest int216 or\n * greater than largest int216).\n *\n * Counterpart to Solidity's `int216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\n downcasted = int216(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(216, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int208 from int256, reverting on\n * overflow (when the input is less than smallest int208 or\n * greater than largest int208).\n *\n * Counterpart to Solidity's `int208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\n downcasted = int208(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(208, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int200 from int256, reverting on\n * overflow (when the input is less than smallest int200 or\n * greater than largest int200).\n *\n * Counterpart to Solidity's `int200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\n downcasted = int200(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(200, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int192 from int256, reverting on\n * overflow (when the input is less than smallest int192 or\n * greater than largest int192).\n *\n * Counterpart to Solidity's `int192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\n downcasted = int192(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(192, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int184 from int256, reverting on\n * overflow (when the input is less than smallest int184 or\n * greater than largest int184).\n *\n * Counterpart to Solidity's `int184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\n downcasted = int184(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(184, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int176 from int256, reverting on\n * overflow (when the input is less than smallest int176 or\n * greater than largest int176).\n *\n * Counterpart to Solidity's `int176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\n downcasted = int176(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(176, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int168 from int256, reverting on\n * overflow (when the input is less than smallest int168 or\n * greater than largest int168).\n *\n * Counterpart to Solidity's `int168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\n downcasted = int168(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(168, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int160 from int256, reverting on\n * overflow (when the input is less than smallest int160 or\n * greater than largest int160).\n *\n * Counterpart to Solidity's `int160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\n downcasted = int160(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(160, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int152 from int256, reverting on\n * overflow (when the input is less than smallest int152 or\n * greater than largest int152).\n *\n * Counterpart to Solidity's `int152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\n downcasted = int152(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(152, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int144 from int256, reverting on\n * overflow (when the input is less than smallest int144 or\n * greater than largest int144).\n *\n * Counterpart to Solidity's `int144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\n downcasted = int144(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(144, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int136 from int256, reverting on\n * overflow (when the input is less than smallest int136 or\n * greater than largest int136).\n *\n * Counterpart to Solidity's `int136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\n downcasted = int136(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(136, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int128 from int256, reverting on\n * overflow (when the input is less than smallest int128 or\n * greater than largest int128).\n *\n * Counterpart to Solidity's `int128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\n downcasted = int128(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(128, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int120 from int256, reverting on\n * overflow (when the input is less than smallest int120 or\n * greater than largest int120).\n *\n * Counterpart to Solidity's `int120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\n downcasted = int120(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(120, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int112 from int256, reverting on\n * overflow (when the input is less than smallest int112 or\n * greater than largest int112).\n *\n * Counterpart to Solidity's `int112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\n downcasted = int112(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(112, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int104 from int256, reverting on\n * overflow (when the input is less than smallest int104 or\n * greater than largest int104).\n *\n * Counterpart to Solidity's `int104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\n downcasted = int104(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(104, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int96 from int256, reverting on\n * overflow (when the input is less than smallest int96 or\n * greater than largest int96).\n *\n * Counterpart to Solidity's `int96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\n downcasted = int96(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(96, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int88 from int256, reverting on\n * overflow (when the input is less than smallest int88 or\n * greater than largest int88).\n *\n * Counterpart to Solidity's `int88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\n downcasted = int88(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(88, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int80 from int256, reverting on\n * overflow (when the input is less than smallest int80 or\n * greater than largest int80).\n *\n * Counterpart to Solidity's `int80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\n downcasted = int80(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(80, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int72 from int256, reverting on\n * overflow (when the input is less than smallest int72 or\n * greater than largest int72).\n *\n * Counterpart to Solidity's `int72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\n downcasted = int72(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(72, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int64 from int256, reverting on\n * overflow (when the input is less than smallest int64 or\n * greater than largest int64).\n *\n * Counterpart to Solidity's `int64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\n downcasted = int64(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(64, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int56 from int256, reverting on\n * overflow (when the input is less than smallest int56 or\n * greater than largest int56).\n *\n * Counterpart to Solidity's `int56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\n downcasted = int56(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(56, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int48 from int256, reverting on\n * overflow (when the input is less than smallest int48 or\n * greater than largest int48).\n *\n * Counterpart to Solidity's `int48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\n downcasted = int48(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(48, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int40 from int256, reverting on\n * overflow (when the input is less than smallest int40 or\n * greater than largest int40).\n *\n * Counterpart to Solidity's `int40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\n downcasted = int40(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(40, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int32 from int256, reverting on\n * overflow (when the input is less than smallest int32 or\n * greater than largest int32).\n *\n * Counterpart to Solidity's `int32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\n downcasted = int32(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(32, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int24 from int256, reverting on\n * overflow (when the input is less than smallest int24 or\n * greater than largest int24).\n *\n * Counterpart to Solidity's `int24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\n downcasted = int24(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(24, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int16 from int256, reverting on\n * overflow (when the input is less than smallest int16 or\n * greater than largest int16).\n *\n * Counterpart to Solidity's `int16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\n downcasted = int16(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(16, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int8 from int256, reverting on\n * overflow (when the input is less than smallest int8 or\n * greater than largest int8).\n *\n * Counterpart to Solidity's `int8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\n downcasted = int8(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(8, value);\n }\n }\n\n /**\n * @dev Converts an unsigned uint256 into a signed int256.\n *\n * Requirements:\n *\n * - input must be less than or equal to maxInt256.\n */\n function toInt256(uint256 value) internal pure returns (int256) {\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n if (value > uint256(type(int256).max)) {\n revert SafeCastOverflowedUintToInt(value);\n }\n return int256(value);\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Pausable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Pausable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract Pausable is Context {\n bool private _paused;\n\n /**\n * @dev Emitted when the pause is triggered by `account`.\n */\n event Paused(address account);\n\n /**\n * @dev Emitted when the pause is lifted by `account`.\n */\n event Unpaused(address account);\n\n /**\n * @dev The operation failed because the contract is paused.\n */\n error EnforcedPause();\n\n /**\n * @dev The operation failed because the contract is not paused.\n */\n error ExpectedPause();\n\n /**\n * @dev Initializes the contract in unpaused state.\n */\n constructor() {\n _paused = false;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is not paused.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n modifier whenNotPaused() {\n _requireNotPaused();\n _;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is paused.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n modifier whenPaused() {\n _requirePaused();\n _;\n }\n\n /**\n * @dev Returns true if the contract is paused, and false otherwise.\n */\n function paused() public view virtual returns (bool) {\n return _paused;\n }\n\n /**\n * @dev Throws if the contract is paused.\n */\n function _requireNotPaused() internal view virtual {\n if (paused()) {\n revert EnforcedPause();\n }\n }\n\n /**\n * @dev Throws if the contract is not paused.\n */\n function _requirePaused() internal view virtual {\n if (!paused()) {\n revert ExpectedPause();\n }\n }\n\n /**\n * @dev Triggers stopped state.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n function _pause() internal virtual whenNotPaused {\n _paused = true;\n emit Paused(_msgSender());\n }\n\n /**\n * @dev Returns to normal state.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n function _unpause() internal virtual whenPaused {\n _paused = false;\n emit Unpaused(_msgSender());\n }\n}\n" + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(newImplementation.code.length > 0);\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n struct StringSlot {\n string value;\n }\n\n struct BytesSlot {\n bytes value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n */\n function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n */\n function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n}\n" + }, + "contracts/DomainMangager/DomainManager.sol": { + "content": "// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {ISciRegistry} from '../SciRegistry/ISciRegistry.sol';\n\n/**\n * @title DomainManager\n * @dev Contract module that implement access\n * control only to owners of a domain in the SCI Registry.\n * @custom:security-contact security@sci.domains\n */\nabstract contract DomainManager {\n ISciRegistry public immutable registry;\n\n /**\n * @dev Thrown when the `account` is not the owner of the domainhash.\n */\n error AccountIsNotDomainOwner(address account, bytes32 domainHash);\n\n /**\n * @dev Modifier that checks if the provided address is the owner of the SCI domain.\n * @param domainHash The namehash of the domain.\n *\n * Note: Reverts with `AccountIsNotDomainOwner` error if the check fails.\n */\n modifier onlyDomainOwner(address account, bytes32 domainHash) {\n _checkDomainOwner(account, domainHash);\n _;\n }\n\n /**\n * @dev Initializes the contract with references to the SCI Registry.\n * @param _sciRegistryAddress Address of the SCI Registry contract.\n */\n constructor(address _sciRegistryAddress) {\n registry = ISciRegistry(_sciRegistryAddress);\n }\n\n /**\n * @dev Reverts with an {AccountIsNotDomainOwner} error if the caller\n * is not the owner of the domain.\n * @param domainHash The namehash of the domain.\n *\n * Note: Overriding this function changes the behavior of the {onlyDomainOwner} modifier.\n */\n function _checkDomainOwner(address account, bytes32 domainHash) private view {\n if (registry.domainOwner(domainHash) != account) {\n revert AccountIsNotDomainOwner(account, domainHash);\n }\n }\n}\n" + }, + "contracts/Ens/Ens.sol": { + "content": "// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n// Only for testing purposes, the SCI smart contract uses the ENS interface.\n/* solhint-disable */\nimport {ENSRegistry} from '@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol';\n" + }, + "contracts/Proxy/Proxy.sol": { + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity 0.8.28;\n\n// We import these here to force Hardhat to compile them.\n// This ensures that their artifacts are available for Hardhat Ignition to use.\n// solhint-disable no-unused-import\nimport {ProxyAdmin} from '@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol';\nimport {TransparentUpgradeableProxy} from '@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol';\n" + }, + "contracts/Registrars/EnsRegistrar.sol": { + "content": "// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {ENS} from '@ensdomains/ens-contracts/contracts/registry/ENS.sol';\nimport {ISciRegistry} from '../SciRegistry/ISciRegistry.sol';\nimport {IVerifier} from '../Verifiers/IVerifier.sol';\nimport {Context} from '@openzeppelin/contracts/utils/Context.sol';\n\n/**\n * @title EnsRegistrar\n * @dev This contract allows owners of an ENS (Ethereum Name Service) domain to register it\n * in the SCI Registry contract.\n * The contract ensures that only the legitimate ENS owner can register a domain\n * by verifying the domain ownership through the ENS contract.\n * @custom:security-contact security@sci.domains\n */\ncontract EnsRegistrar is Context {\n ENS public immutable ensRegistry;\n ISciRegistry public immutable registry;\n\n /**\n * @dev Thrown when the `account` is not the owner of the ENS `domainhash`.\n */\n error AccountIsNotEnsOwner(address account, bytes32 domainHash);\n\n /**\n * @dev Modifier that checks if the provided `account` is the owner of the `domainhash`.\n * @param account Address expected to be the domain owner.\n * @param domainHash Namehash of the domain.\n *\n * Note: Reverts with `AccountIsNotEnsOwner` error if the check fails.\n */\n modifier onlyEnsOwner(address account, bytes32 domainHash) {\n _checkEnsOwner(account, domainHash);\n _;\n }\n\n /**\n * @dev Initializes the contract with references to the ENS and the SCI Registry.\n * @param _ensRegistryAddress Address of the ENS Registry contract.\n * @param _sciRegistryAddress Address of the SCI Registry contract.\n */\n constructor(address _ensRegistryAddress, address _sciRegistryAddress) {\n ensRegistry = ENS(_ensRegistryAddress);\n registry = ISciRegistry(_sciRegistryAddress);\n }\n\n /**\n * @dev Registers a domain in the SCI Registry contract.\n * @param owner Address of the domain owner.\n * @param domainHash Namehash of domain.\n *\n * Requirements:\n *\n * - The owner must be the ENS owner of the domainHash.\n */\n function registerDomain(\n address owner,\n bytes32 domainHash\n ) external onlyEnsOwner(owner, domainHash) {\n registry.registerDomain(owner, domainHash);\n }\n\n /**\n * @dev Registers a domain with a verifier in the SCI Registry contract.\n * @param domainHash Namehash of the domain.\n * @param verifier Address of the verifier contract.\n *\n * Requirements:\n *\n * - The caller must be the ENS owner of the domainHash.\n */\n function registerDomainWithVerifier(\n bytes32 domainHash,\n IVerifier verifier\n ) external onlyEnsOwner(_msgSender(), domainHash) {\n registry.registerDomainWithVerifier(_msgSender(), domainHash, verifier);\n }\n\n /**\n * @dev Private helper function to check if the specified address owns the ENS domain.\n * @param account Address expected to be the domain owner.\n * @param domainHash Namehash of the domain.\n *\n * Note: Reverts with `AccountIsNotEnsOwner` error if the address is not the owner of the ENS domain.\n */\n function _checkEnsOwner(address account, bytes32 domainHash) private view {\n if (ensRegistry.owner(domainHash) != account) {\n revert AccountIsNotEnsOwner(account, domainHash);\n }\n }\n}\n" + }, + "contracts/Registrars/SciRegistrar.sol": { + "content": "// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {AccessControlDefaultAdminRules} from '@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol';\nimport {ISciRegistry} from '../SciRegistry/ISciRegistry.sol';\nimport {IVerifier} from '../Verifiers/IVerifier.sol';\n\n/**\n * @title SciRegistrar\n * @dev This contract allows addresses with REGISTER_DOMAIN_ROLE role to register a domain\n * in the SCI Registry. This will be use by the SCI team to register domains until the protocol\n * became widly used and we don't need to be registering domains for protocols.\n *\n * The address with REGISTER_DOMAIN_ROLE and DEFAULT_ADMIN_ROLE should be a multisig.\n *\n * @custom:security-contact security@sci.domains\n */\ncontract SciRegistrar is AccessControlDefaultAdminRules {\n // Role that allows registering domains\n bytes32 public constant REGISTER_DOMAIN_ROLE = keccak256('REGISTER_DOMAIN_ROLE');\n\n ISciRegistry public immutable registry;\n\n /**\n * @dev Initializes the contract by setting up the SCI Registry reference and defining the admin rules.\n * @param _sciRegistryAddress Address of the custom domain registry contract.\n * @param initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\n */\n constructor(\n address _sciRegistryAddress,\n uint48 initialDelay\n ) AccessControlDefaultAdminRules(initialDelay, _msgSender()) {\n registry = ISciRegistry(_sciRegistryAddress);\n }\n\n /**\n * @dev Registers a domain in the SCI Registry contract.\n * @param owner Address expected to be the domain owner.\n * @param domainHash Namehash of the domain.\n *\n * Requirements:\n *\n * - The caller must have the REGISTER_DOMAIN_ROLE role.\n */\n function registerDomain(\n address owner,\n bytes32 domainHash\n ) external onlyRole(REGISTER_DOMAIN_ROLE) {\n registry.registerDomain(owner, domainHash);\n }\n\n /**\n * @dev Registers a domain with a verifier in the SCI Registry contract.\n * @param owner Address expected to be the domain owner.\n * @param domainHash Namehash of the domain.\n * @param verifier Address of the verifier contract.\n *\n * Requirements:\n *\n * - The caller must have the REGISTER_DOMAIN_ROLE role.\n *\n * Note: This contract must only be handle by the SCI Team so we assume\n * it's safe to receive the owner.\n */\n function registerDomainWithVerifier(\n address owner,\n bytes32 domainHash,\n IVerifier verifier\n ) external onlyRole(REGISTER_DOMAIN_ROLE) {\n registry.registerDomainWithVerifier(owner, domainHash, verifier);\n }\n}\n" + }, + "contracts/SCI.sol": { + "content": "// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {IVerifier} from './Verifiers/IVerifier.sol';\nimport {ISciRegistry} from './SciRegistry/ISciRegistry.sol';\nimport {Initializable} from '@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol';\nimport {Ownable2StepUpgradeable} from '@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol';\n\n/**\n * @title SCI\n * @dev This contract facilitates interaction with the SCI protocol, offering a simplified interface\n * for apps and wallets. Apps and wallets can also directly interact with the\n * Registry and verifiers directly if desired, bypassing this contract.\n * @custom:security-contact security@sci.domains\n */\ncontract SCI is Initializable, Ownable2StepUpgradeable {\n ISciRegistry public registry;\n\n /**\n * @dev Emitted when the Registry is changed.\n */\n event RegistrySet(address indexed oldRegistryAddress, address indexed newRegistryAddress);\n\n /**\n * @dev Initializes the SCI contract with the owner and registry address.\n * Can only be called once during contract deployment.\n *\n * @param owner The owner of this contract.\n * @param registryAddress The address of the registry to be used by the contract.\n */\n function initialize(address owner, address registryAddress) external initializer {\n __Ownable2Step_init();\n __Ownable_init(owner);\n setRegistry(registryAddress);\n }\n\n /**\n * @dev Returns info from the domain.\n *\n * @param domainHash The namehash of the domain.\n */\n function domainHashToRecord(\n bytes32 domainHash\n )\n external\n view\n returns (\n address owner,\n IVerifier verifier,\n uint256 lastOwnerSetTime,\n uint256 lastVerifierSetTime\n )\n {\n return registry.domainHashToRecord(domainHash);\n }\n\n /**\n * @dev Same as isVerifiedForDomainHash but for multiple domains.\n *\n * @param domainHashes An array of domain hashes.\n * @param contractAddress The address of the contract is being verified.\n * @param chainId The id of the chain the contract is deployed in.\n * @return an array of uint256 representing the time when the contract was verified for each domain\n * or 0 if it wasn't.\n *\n * Note: If there is no verifier set then it returns false for that `domainHash`.\n */\n function isVerifiedForMultipleDomainHashes(\n bytes32[] memory domainHashes,\n address contractAddress,\n uint256 chainId\n ) external view returns (uint256[] memory) {\n uint256[] memory domainsVerification = new uint256[](domainHashes.length);\n uint256 domainHashesLength = domainHashes.length;\n for (uint256 i; i < domainHashesLength; ) {\n domainsVerification[i] = isVerifiedForDomainHash(\n domainHashes[i],\n contractAddress,\n chainId\n );\n unchecked {\n ++i;\n }\n }\n return domainsVerification;\n }\n\n /**\n * @dev Returns if the `contractAddress` deployed in the chain with id `chainId` is verified.\n * to interact with the domain with namehash `domainHash`.\n * @param domainHash The namehash of the domain the contract is interacting with\n * @param contractAddress The address of the contract is being verified.\n * @param chainId The id of the chain the contract is deployed in.\n * @return a uint256 representing the time when the contract was verified.\n * If the contract is not verified, it returns 0.\n *\n * Note: If there is no verifier set then it returns 0.\n */\n function isVerifiedForDomainHash(\n bytes32 domainHash,\n address contractAddress,\n uint256 chainId\n ) public view returns (uint256) {\n (, IVerifier verifier, , ) = registry.domainHashToRecord(domainHash);\n\n if (address(verifier) == address(0)) {\n return 0;\n }\n\n return verifier.isVerified(domainHash, contractAddress, chainId);\n }\n\n /**\n * @dev Sets a new registry.\n *\n * @param newRegistry The address of the new SCI Registry.\n *\n * May emit a {RegistrySet} event.\n */\n function setRegistry(address newRegistry) public onlyOwner {\n address oldRegistryAddress = address(registry);\n registry = ISciRegistry(newRegistry);\n emit RegistrySet(oldRegistryAddress, newRegistry);\n }\n}\n" + }, + "contracts/SciRegistry/ISciRegistry.sol": { + "content": "// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {IVerifier} from '../Verifiers/IVerifier.sol';\n\n/**\n * @title ISciRegistry\n * @dev This contract manages domain registration and verifiers. It uses role-based access control to allow\n * only authorized accounts to register domains and update verifiers.\n * The contract stores domain ownership and verifier information and allows domain owners to modify verifiers.\n * @custom:security-contact security@sci.domains\n */\ninterface ISciRegistry {\n /**\n * @dev Emitted when a new `domain` with the `domainHash` is\n * registered by the `owner`.\n */\n event DomainRegistered(\n address indexed registrar,\n address indexed owner,\n bytes32 indexed domainHash\n );\n\n /**\n * @dev Emitted when the `owner` of the `domainHash` adds a `verifier`.\n *\n * Note: This will also be emitted when the verifier is changed.\n */\n event VerifierSet(\n address msgSender,\n bytes32 indexed domainHash,\n IVerifier indexed oldVerifier,\n IVerifier indexed newVerifie\n );\n\n /**\n * @dev Emitted when the owner of a `domainHash` is set.\n *\n */\n event OwnerSet(\n address msgSender,\n bytes32 indexed domainHash,\n address indexed oldOwner,\n address indexed newOwner\n );\n\n /**\n * @dev Returns the owner, the IVerifier, lastOwnerSetTime and lastIVerifierSetTime\n * for a given domainHash.\n * @param domainHash The namehash of the domain.\n */\n function domainHashToRecord(\n bytes32 domainHash\n )\n external\n view\n returns (\n address owner,\n IVerifier verifier,\n uint256 lastOwnerSetTime,\n uint256 lastIVerifierSetTime\n );\n\n /**\n * @dev Register a domain.\n *\n * @param owner The owner of the domain.\n * @param domainHash The namehash of the domain being registered.\n *\n * Requirements:\n *\n * - Only valid Registrars must be able to call this function.\n *\n * May emit a {DomainRegistered} event.\n */\n function registerDomain(address owner, bytes32 domainHash) external;\n\n /**\n * @dev Same as registerDomain but it also adds a IVerifier.\n *\n * @param owner The owner of the domain being registered.\n * @param domainHash The namehash of the domain being registered.\n * @param verifier The verifier that is being set for the domain.\n *\n * Requirements:\n *\n * - Only valid Registrars must be able to call this function.\n *\n * Note: Most of registrars should implement this function by sending\n * the message sender as the owner to avoid other addresses changing or setting\n * a malicous verifier.\n *\n * May emit a {DomainRegistered} and a {IVerifierAdded} events.\n */\n function registerDomainWithVerifier(\n address owner,\n bytes32 domainHash,\n IVerifier verifier\n ) external;\n\n /**\n * @dev Returns true if the account is the owner of the domainHash.\n */\n function isDomainOwner(bytes32 domainHash, address account) external view returns (bool);\n\n /**\n * @dev Returns the owner of the domainHash.\n * @param domainHash The namehash of the domain.\n * @return The address of the owner or the ZERO_ADDRESS if the domain is not registered.\n */\n function domainOwner(bytes32 domainHash) external view returns (address);\n\n /**\n * @dev Returns the IVerifier of the domainHash.\n * @param domainHash The namehash of the domain.\n * @return The address of the IVerifier or the ZERO_ADDRESS if the domain or\n * the IVerifier are not registered.\n */\n function domainVerifier(bytes32 domainHash) external view returns (IVerifier);\n\n /**\n * @dev Returns the timestamp of the block where the IVerifier was set.\n * @param domainHash The namehash of the domain.\n * @return The timestamp of the block where the IVerifier was set or\n * 0 if it wasn't.\n */\n function domainVerifierSetTime(bytes32 domainHash) external view returns (uint256);\n\n /**\n * @dev Sets a IVerifier to the domain hash.\n * @param domainHash The namehash of the domain.\n * @param verifier The address of the IVerifier contract.\n *\n * Requirements:\n *\n * - the caller must be the owner of the domain.\n *\n * May emit a {IVerifierAdded} event.\n *\n * Note: If you want to remove a IVerifier you can set it to the ZERO_ADDRESS.\n */\n function setVerifier(bytes32 domainHash, IVerifier verifier) external;\n}\n" + }, + "contracts/SciRegistry/SciRegistry.sol": { + "content": "// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {Context} from '@openzeppelin/contracts/utils/Context.sol';\nimport {Pausable} from '@openzeppelin/contracts/utils/Pausable.sol';\nimport {AccessControlDefaultAdminRules} from '@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol';\nimport {IVerifier} from '../Verifiers/IVerifier.sol';\nimport {ISciRegistry} from './ISciRegistry.sol';\nimport {DomainManager} from '../DomainMangager/DomainManager.sol';\n\n/**\n * @title Registry\n * @dev See {ISciRegistry}.\n * @custom:security-contact security@sci.domains\n */\ncontract SciRegistry is\n ISciRegistry,\n Context,\n AccessControlDefaultAdminRules,\n DomainManager,\n Pausable\n{\n /**\n * @dev Structure to hold domain record details, including:\n * - owner: Address of the domain owner.\n * - verifier: Address of the verifier contract associated with the domain.\n * - ownerSetTime: Timestamp of when the domain owner was last set.\n * - verifierSetTime: Timestamp of when the verifier was last set.\n */\n struct Record {\n address owner;\n IVerifier verifier;\n uint256 ownerSetTime;\n uint256 verifierSetTime;\n }\n\n // Role that allows managing registrar roles.\n bytes32 public constant REGISTRAR_MANAGER_ROLE = keccak256('REGISTRAR_MANAGER_ROLE');\n // Role that allows registering domains.\n bytes32 public constant REGISTRAR_ROLE = keccak256('REGISTRAR_ROLE');\n // Role that allows to pause the contract.\n bytes32 public constant PAUSER_ROLE = keccak256('PAUSER_ROLE');\n\n /**\n * @dev Maps the namehash of a domain to a Record.\n */\n mapping(bytes32 nameHash => Record domain) public domainHashToRecord;\n\n /**\n * @dev Constructor to initialize the Registry contract.\n * Sets the REGISTRAR_MANAGER_ROLE as the admin role of REGISTRAR_ROLE.\n * @param initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\n */\n constructor(\n uint48 initialDelay\n ) AccessControlDefaultAdminRules(initialDelay, _msgSender()) DomainManager(address(this)) {\n _setRoleAdmin(REGISTRAR_ROLE, REGISTRAR_MANAGER_ROLE);\n }\n\n /**\n * @dev See {ISciRegistry-registerDomain}.\n */\n function registerDomain(address owner, bytes32 domainHash) external {\n _registerDomain(owner, domainHash);\n }\n\n /**\n * @dev See {ISciRegistry-registerDomainWithVerifier}.\n */\n function registerDomainWithVerifier(\n address owner,\n bytes32 domainHash,\n IVerifier verifier\n ) external {\n _registerDomain(owner, domainHash);\n _setVerifier(domainHash, verifier);\n }\n\n /**\n * @dev Pauses registering a domain and setting a verifier.\n */\n function pause() external onlyRole(PAUSER_ROLE) {\n _pause();\n }\n\n /**\n * @dev Unpauses registering a domain and setting a verifier.\n */\n function unpause() external onlyRole(PAUSER_ROLE) {\n _unpause();\n }\n\n /**\n * @dev See {ISciRegistry-isDomainOwner}.\n */\n function isDomainOwner(\n bytes32 domainHash,\n address account\n ) external view virtual override returns (bool) {\n return domainOwner(domainHash) == account;\n }\n\n /**\n * @dev See {ISciRegistry-setVerifier}.\n */\n function setVerifier(\n bytes32 domainHash,\n IVerifier verifier\n ) external onlyDomainOwner(_msgSender(), domainHash) {\n _setVerifier(domainHash, verifier);\n }\n\n /**\n * @dev See {ISciRegistry-domainVerifier}.\n */\n function domainVerifier(bytes32 domainHash) external view virtual returns (IVerifier) {\n return domainHashToRecord[domainHash].verifier;\n }\n\n /**\n * @dev See {ISciRegistry-domainVerifierSetTime}.\n */\n function domainVerifierSetTime(bytes32 domainHash) external view virtual returns (uint256) {\n return domainHashToRecord[domainHash].verifierSetTime;\n }\n\n /**\n * @dev Grants a role to an account.\n * @param role The role to grant.\n * @param account The account receiving the role.\n *\n * Note: Overrides the OpenZeppelin function to require the\n * caller to have the admin role for the role being granted.\n */\n function grantRole(bytes32 role, address account) public override onlyRole(getRoleAdmin(role)) {\n _grantRole(role, account);\n }\n\n /**\n * @dev See {ISciRegistry-domainOwner}.\n */\n function domainOwner(bytes32 domainHash) public view virtual override returns (address) {\n return domainHashToRecord[domainHash].owner;\n }\n\n /**\n * @dev Base function to register a domain.\n *\n * @param owner The owner of the domain.\n * @param domainHash The namehash of the domain being registered.\n *\n * Requirements:\n *\n * - the owner must be authorized by the authorizer.\n * - The contract must not be paused.\n *\n * May emit a {DomainRegistered} event.\n */\n function _registerDomain(\n address owner,\n bytes32 domainHash\n ) private onlyRole(REGISTRAR_ROLE) whenNotPaused {\n _setDomainOwner(domainHash, owner);\n emit DomainRegistered(_msgSender(), owner, domainHash);\n }\n\n /**\n * @dev Sets the verifier, updates the verifier timestamp and\n * emits VerifierSet events.\n * All updates to a verifier should be through this function.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n function _setVerifier(bytes32 domainHash, IVerifier verifier) private whenNotPaused {\n IVerifier oldVerifier = domainHashToRecord[domainHash].verifier;\n domainHashToRecord[domainHash].verifier = verifier;\n domainHashToRecord[domainHash].verifierSetTime = block.timestamp;\n emit VerifierSet(_msgSender(), domainHash, oldVerifier, verifier);\n }\n\n /**\n * @dev Sets the owner of a domain,\n * All updates to an owner should be through this function.\n */\n function _setDomainOwner(bytes32 domainHash, address owner) private {\n address oldOwner = domainHashToRecord[domainHash].owner;\n domainHashToRecord[domainHash].owner = owner;\n domainHashToRecord[domainHash].ownerSetTime = block.timestamp;\n emit OwnerSet(_msgSender(), domainHash, oldOwner, owner);\n }\n}\n" + }, + "contracts/Verifiers/IVerifier.sol": { + "content": "// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\n/**\n * @title IVerifier\n * @dev Required interface of a Verifier compliant contract for the SCI Registry.\n * @custom:security-contact security@sci.domains\n */\ninterface IVerifier {\n /**\n * @dev Verifies if a contract in a specific chain is authorized\n * to interact within a domain.\n * @param domainHash The domain's namehash.\n * @param contractAddress The address of the contract trying to be verified.\n * @param chainId The chain where the contract is deployed.\n * @return a uint256 representing the time when the contract was verified.\n * If the contract is not verified, it returns 0.\n *\n * Note: The return timestamp is a best effor approach to provide the time when the contract\n * was verified. For verifiers that can't know when the contract was verified they could\n * return when the verifier was deployed.\n */\n function isVerified(\n bytes32 domainHash,\n address contractAddress,\n uint256 chainId\n ) external view returns (uint256);\n}\n" + }, + "contracts/Verifiers/PublicListVerifier.sol": { + "content": "// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {IVerifier} from './IVerifier.sol';\nimport {DomainManager} from '../DomainMangager/DomainManager.sol';\nimport {Context} from '@openzeppelin/contracts/utils/Context.sol';\n\n/**\n * @title PublicListVerifier\n * @dev This contract implements the Verifier interface.\n * Domain owners can add or remove addresses that can interact within their domain.\n *\n * If the owner of the domain sets a contract address with MAX_INT as chain id then it assumes\n * this contract is verified for all chains for that domain.\n * @custom:security-contact security@sci.domains\n */\ncontract PublicListVerifier is IVerifier, Context, DomainManager {\n uint256 private constant MAX_INT = 2 ** 256 - 1;\n\n // Domain hash -> contract address -> chain id -> true/false.\n mapping(bytes32 domainHash => mapping(address contractAddress => mapping(uint256 chainId => uint256 registerTimestamp)))\n public verifiedContracts;\n\n /**\n * @dev Emitted when the `msgSender` removes an address to a `domainHash` for a `chainId`.\n */\n event AddressRemoved(\n bytes32 indexed domainHash,\n uint256 indexed chainId,\n address indexed contractAddress,\n address msgSender\n );\n\n /**\n * @dev Emitted when the `msgSender` adds an address to a `domainHash` for a `chainId`.\n */\n event AddressAdded(\n bytes32 indexed domainHash,\n uint256 indexed chainId,\n address indexed contractAddress,\n address msgSender\n );\n\n constructor(address _registry) DomainManager(_registry) {}\n\n /**\n * @dev Adds multiple addresses in multiple chains to the domain.\n *\n * Requirements:\n *\n * - The caller must be the owner of the domain.\n */\n function addAddresses(\n bytes32 domainHash,\n address[] calldata contractAddresses,\n uint256[][] calldata chainIds\n ) external onlyDomainOwner(_msgSender(), domainHash) {\n for (uint256 i; i < contractAddresses.length; ) {\n for (uint256 j; j < chainIds[i].length; ) {\n verifiedContracts[domainHash][contractAddresses[i]][chainIds[i][j]] = block\n .timestamp;\n emit AddressAdded(domainHash, chainIds[i][j], contractAddresses[i], _msgSender());\n unchecked {\n ++j;\n }\n }\n unchecked {\n ++i;\n }\n }\n }\n\n /**\n * @dev Removes multiple addresses in multiple chains to the domain.\n *\n * Requirements:\n *\n * - The caller must be the owner of the domain.\n */\n function removeAddresses(\n bytes32 domainHash,\n address[] calldata contractAddresses,\n uint256[][] calldata chainIds\n ) external onlyDomainOwner(_msgSender(), domainHash) {\n for (uint256 i; i < contractAddresses.length; ) {\n for (uint256 j; j < chainIds[i].length; ++j) {\n verifiedContracts[domainHash][contractAddresses[i]][chainIds[i][j]] = 0;\n emit AddressRemoved(domainHash, chainIds[i][j], contractAddresses[i], _msgSender());\n unchecked {\n ++j;\n }\n }\n unchecked {\n ++i;\n }\n }\n }\n\n /**\n * @dev See {IVerifier-isVerified}.\n */\n function isVerified(\n bytes32 domainHash,\n address contractAddress,\n uint256 chainId\n ) external view returns (uint256) {\n uint256 verifiedContract = verifiedContracts[domainHash][contractAddress][chainId];\n\n if (verifiedContract != 0) {\n return verifiedContract;\n }\n\n verifiedContract = verifiedContracts[domainHash][contractAddress][MAX_INT];\n if (verifiedContract != 0) {\n return verifiedContract;\n }\n\n // Return 0 if no match is found\n return 0;\n }\n}\n" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "errors": [ + { + "component": "general", + "errorCode": "1878", + "formattedMessage": "Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> @ensdomains/ens-contracts/contracts/registry/ENS.sol\n\n", + "message": "SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.", + "severity": "warning", + "sourceLocation": { + "end": -1, + "file": "@ensdomains/ens-contracts/contracts/registry/ENS.sol", + "start": -1 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "1878", + "formattedMessage": "Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol\n\n", + "message": "SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.", + "severity": "warning", + "sourceLocation": { + "end": -1, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": -1 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:20:9:\n |\n20 | address owner = records[node].owner;\n | ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n |\n143 | function owner(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 4502, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4259 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 443, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 430 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:41:9:\n |\n41 | address owner,\n | ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n |\n143 | function owner(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 4502, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4259 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 991, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 978 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:42:9:\n |\n42 | address resolver,\n | ^^^^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:159:5:\n |\n159 | function resolver(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 4814, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4675 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 1017, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 1001 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:43:9:\n |\n43 | uint64 ttl\n | ^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:170:5:\n |\n170 | function ttl(bytes32 node) public view virtual override returns (uint64) {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 5096, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4982 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 1037, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 1027 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:60:9:\n |\n60 | address owner,\n | ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n |\n143 | function owner(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 4502, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4259 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 1557, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 1544 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:61:9:\n |\n61 | address resolver,\n | ^^^^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:159:5:\n |\n159 | function resolver(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 4814, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4675 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 1583, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 1567 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:62:9:\n |\n62 | uint64 ttl\n | ^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:170:5:\n |\n170 | function ttl(bytes32 node) public view virtual override returns (uint64) {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 5096, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4982 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 1603, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 1593 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:75:9:\n |\n75 | address owner\n | ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n |\n143 | function owner(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 4502, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4259 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 2059, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 2046 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:90:9:\n |\n90 | address owner\n | ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n |\n143 | function owner(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 4502, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4259 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 2586, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 2573 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:105:9:\n |\n105 | address resolver\n | ^^^^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:159:5:\n |\n159 | function resolver(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 4814, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4675 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 3072, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 3056 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:118:9:\n |\n118 | uint64 ttl\n | ^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:170:5:\n |\n170 | function ttl(bytes32 node) public view virtual override returns (uint64) {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 5096, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4982 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 3417, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 3407 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:192:9:\n |\n192 | address owner,\n | ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n |\n143 | function owner(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 4502, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4259 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 5780, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 5767 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:198:38:\n |\n198 | function _setOwner(bytes32 node, address owner) internal virtual {\n | ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n |\n143 | function owner(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 4502, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4259 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 5961, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 5948 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:204:9:\n |\n204 | address resolver,\n | ^^^^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:159:5:\n |\n159 | function resolver(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 4814, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4675 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 6105, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 6089 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2519", + "formattedMessage": "Warning: This declaration shadows an existing declaration.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:205:9:\n |\n205 | uint64 ttl\n | ^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:170:5:\n |\n170 | function ttl(bytes32 node) public view virtual override returns (uint64) {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "This declaration shadows an existing declaration.", + "secondarySourceLocations": [ + { + "end": 5096, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "message": "The shadowed declaration is here:", + "start": 4982 + } + ], + "severity": "warning", + "sourceLocation": { + "end": 6125, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 6115 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2462", + "formattedMessage": "Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.\n --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:28:5:\n |\n28 | constructor() public {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.", + "severity": "warning", + "sourceLocation": { + "end": 687, + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "start": 618 + }, + "type": "Warning" + } + ], + "sources": { + "@ensdomains/ens-contracts/contracts/registry/ENS.sol": { + "ast": { + "absolutePath": "@ensdomains/ens-contracts/contracts/registry/ENS.sol", + "exportedSymbols": { + "ENS": [ + 136 + ] + }, + "id": 137, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.8", + ".4" + ], + "nodeType": "PragmaDirective", + "src": "0:24:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ENS", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 136, + "linearizedBaseContracts": [ + 136 + ], + "name": "ENS", + "nameLocation": "36:3:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "eventSelector": "ce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82", + "id": 9, + "name": "NewOwner", + "nameLocation": "125:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 8, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3, + "indexed": true, + "mutability": "mutable", + "name": "node", + "nameLocation": "150:4:0", + "nodeType": "VariableDeclaration", + "scope": 9, + "src": "134:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "134:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5, + "indexed": true, + "mutability": "mutable", + "name": "label", + "nameLocation": "172:5:0", + "nodeType": "VariableDeclaration", + "scope": 9, + "src": "156:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "156:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7, + "indexed": false, + "mutability": "mutable", + "name": "owner", + "nameLocation": "187:5:0", + "nodeType": "VariableDeclaration", + "scope": 9, + "src": "179:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "179:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "133:60:0" + }, + "src": "119:75:0" + }, + { + "anonymous": false, + "eventSelector": "d4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266", + "id": 15, + "name": "Transfer", + "nameLocation": "283:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 14, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "indexed": true, + "mutability": "mutable", + "name": "node", + "nameLocation": "308:4:0", + "nodeType": "VariableDeclaration", + "scope": 15, + "src": "292:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 10, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "292:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13, + "indexed": false, + "mutability": "mutable", + "name": "owner", + "nameLocation": "322:5:0", + "nodeType": "VariableDeclaration", + "scope": 15, + "src": "314:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "314:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "291:37:0" + }, + "src": "277:52:0" + }, + { + "anonymous": false, + "eventSelector": "335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0", + "id": 21, + "name": "NewResolver", + "nameLocation": "393:11:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 20, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17, + "indexed": true, + "mutability": "mutable", + "name": "node", + "nameLocation": "421:4:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "405:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "405:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 19, + "indexed": false, + "mutability": "mutable", + "name": "resolver", + "nameLocation": "435:8:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "427:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "427:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "404:40:0" + }, + "src": "387:58:0" + }, + { + "anonymous": false, + "eventSelector": "1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68", + "id": 27, + "name": "NewTTL", + "nameLocation": "502:6:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23, + "indexed": true, + "mutability": "mutable", + "name": "node", + "nameLocation": "525:4:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "509:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 22, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "509:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25, + "indexed": false, + "mutability": "mutable", + "name": "ttl", + "nameLocation": "538:3:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "531:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 24, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "531:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "508:34:0" + }, + "src": "496:47:0" + }, + { + "anonymous": false, + "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", + "id": 35, + "name": "ApprovalForAll", + "nameLocation": "607:14:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "647:5:0", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "631:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "631:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "678:8:0", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "662:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 30, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "662:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nameLocation": "701:8:0", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "696:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 32, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "696:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "621:94:0" + }, + "src": "601:115:0" + }, + { + "functionSelector": "cf408823", + "id": 46, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setRecord", + "nameLocation": "731:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37, + "mutability": "mutable", + "name": "node", + "nameLocation": "758:4:0", + "nodeType": "VariableDeclaration", + "scope": 46, + "src": "750:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 36, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "750:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "owner", + "nameLocation": "780:5:0", + "nodeType": "VariableDeclaration", + "scope": 46, + "src": "772:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 38, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "772:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 41, + "mutability": "mutable", + "name": "resolver", + "nameLocation": "803:8:0", + "nodeType": "VariableDeclaration", + "scope": 46, + "src": "795:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 40, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "795:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "ttl", + "nameLocation": "828:3:0", + "nodeType": "VariableDeclaration", + "scope": 46, + "src": "821:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 42, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "821:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "740:97:0" + }, + "returnParameters": { + "id": 45, + "nodeType": "ParameterList", + "parameters": [], + "src": "846:0:0" + }, + "scope": 136, + "src": "722:125:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "5ef2c7f0", + "id": 59, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setSubnodeRecord", + "nameLocation": "862:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 57, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 48, + "mutability": "mutable", + "name": "node", + "nameLocation": "896:4:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "888:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 47, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "888:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "label", + "nameLocation": "918:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "910:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 49, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "910:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 52, + "mutability": "mutable", + "name": "owner", + "nameLocation": "941:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "933:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 51, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "933:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 54, + "mutability": "mutable", + "name": "resolver", + "nameLocation": "964:8:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "956:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 53, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "956:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 56, + "mutability": "mutable", + "name": "ttl", + "nameLocation": "989:3:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "982:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 55, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "982:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "878:120:0" + }, + "returnParameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [], + "src": "1007:0:0" + }, + "scope": 136, + "src": "853:155:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "06ab5923", + "id": 70, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setSubnodeOwner", + "nameLocation": "1023:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "node", + "nameLocation": "1056:4:0", + "nodeType": "VariableDeclaration", + "scope": 70, + "src": "1048:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 60, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1048:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "mutability": "mutable", + "name": "label", + "nameLocation": "1078:5:0", + "nodeType": "VariableDeclaration", + "scope": 70, + "src": "1070:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 62, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1070:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1101:5:0", + "nodeType": "VariableDeclaration", + "scope": 70, + "src": "1093:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 64, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1093:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1038:74:0" + }, + "returnParameters": { + "id": 69, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 70, + "src": "1131:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 67, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1131:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1130:9:0" + }, + "scope": 136, + "src": "1014:126:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "1896f70a", + "id": 77, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setResolver", + "nameLocation": "1155:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 72, + "mutability": "mutable", + "name": "node", + "nameLocation": "1175:4:0", + "nodeType": "VariableDeclaration", + "scope": 77, + "src": "1167:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 71, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1167:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "resolver", + "nameLocation": "1189:8:0", + "nodeType": "VariableDeclaration", + "scope": 77, + "src": "1181:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1181:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1166:32:0" + }, + "returnParameters": { + "id": 76, + "nodeType": "ParameterList", + "parameters": [], + "src": "1207:0:0" + }, + "scope": 136, + "src": "1146:62:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "5b0fc9c3", + "id": 84, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setOwner", + "nameLocation": "1223:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79, + "mutability": "mutable", + "name": "node", + "nameLocation": "1240:4:0", + "nodeType": "VariableDeclaration", + "scope": 84, + "src": "1232:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 78, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1232:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1254:5:0", + "nodeType": "VariableDeclaration", + "scope": 84, + "src": "1246:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1246:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1231:29:0" + }, + "returnParameters": { + "id": 83, + "nodeType": "ParameterList", + "parameters": [], + "src": "1269:0:0" + }, + "scope": 136, + "src": "1214:56:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "14ab9038", + "id": 91, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setTTL", + "nameLocation": "1285:6:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 89, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "node", + "nameLocation": "1300:4:0", + "nodeType": "VariableDeclaration", + "scope": 91, + "src": "1292:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 85, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1292:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 88, + "mutability": "mutable", + "name": "ttl", + "nameLocation": "1313:3:0", + "nodeType": "VariableDeclaration", + "scope": 91, + "src": "1306:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 87, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1306:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1291:26:0" + }, + "returnParameters": { + "id": 90, + "nodeType": "ParameterList", + "parameters": [], + "src": "1326:0:0" + }, + "scope": 136, + "src": "1276:51:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a22cb465", + "id": 98, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "1342:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 96, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "operator", + "nameLocation": "1368:8:0", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "1360:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 92, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1360:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "mutability": "mutable", + "name": "approved", + "nameLocation": "1383:8:0", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "1378:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 94, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1378:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1359:33:0" + }, + "returnParameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [], + "src": "1401:0:0" + }, + "scope": 136, + "src": "1333:69:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "02571be3", + "id": 105, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "1417:5:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "node", + "nameLocation": "1431:4:0", + "nodeType": "VariableDeclaration", + "scope": 105, + "src": "1423:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 99, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1423:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1422:14:0" + }, + "returnParameters": { + "id": 104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 103, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 105, + "src": "1460:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1460:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1459:9:0" + }, + "scope": 136, + "src": "1408:61:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "0178b8bf", + "id": 112, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "resolver", + "nameLocation": "1484:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 107, + "mutability": "mutable", + "name": "node", + "nameLocation": "1501:4:0", + "nodeType": "VariableDeclaration", + "scope": 112, + "src": "1493:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 106, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1493:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1492:14:0" + }, + "returnParameters": { + "id": 111, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 112, + "src": "1530:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1530:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1529:9:0" + }, + "scope": 136, + "src": "1475:64:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "16a25cbd", + "id": 119, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ttl", + "nameLocation": "1554:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "node", + "nameLocation": "1566:4:0", + "nodeType": "VariableDeclaration", + "scope": 119, + "src": "1558:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 113, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1558:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1557:14:0" + }, + "returnParameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 119, + "src": "1595:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 116, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1595:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1594:8:0" + }, + "scope": 136, + "src": "1545:58:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "f79fe538", + "id": 126, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "recordExists", + "nameLocation": "1618:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "node", + "nameLocation": "1639:4:0", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "1631:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 120, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1631:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1630:14:0" + }, + "returnParameters": { + "id": 125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "1668:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 123, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1668:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1667:6:0" + }, + "scope": 136, + "src": "1609:65:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e985e9c5", + "id": 135, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "1689:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 128, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1723:5:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "1715:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1715:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "operator", + "nameLocation": "1746:8:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "1738:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1738:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1705:55:0" + }, + "returnParameters": { + "id": 134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "1784:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 132, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1784:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1783:6:0" + }, + "scope": 136, + "src": "1680:110:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 137, + "src": "26:1766:0", + "usedErrors": [], + "usedEvents": [ + 9, + 15, + 21, + 27, + 35 + ] + } + ], + "src": "0:1793:0" + }, + "id": 0 + }, + "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol": { + "ast": { + "absolutePath": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "exportedSymbols": { + "ENS": [ + 136 + ], + "ENSRegistry": [ + 560 + ] + }, + "id": 561, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 138, + "literals": [ + "solidity", + ">=", + "0.8", + ".4" + ], + "nodeType": "PragmaDirective", + "src": "0:24:1" + }, + { + "absolutePath": "@ensdomains/ens-contracts/contracts/registry/ENS.sol", + "file": "./ENS.sol", + "id": 139, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 561, + "sourceUnit": 137, + "src": "26:19:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 141, + "name": "ENS", + "nameLocations": [ + "109:3:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 136, + "src": "109:3:1" + }, + "id": 142, + "nodeType": "InheritanceSpecifier", + "src": "109:3:1" + } + ], + "canonicalName": "ENSRegistry", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 140, + "nodeType": "StructuredDocumentation", + "src": "47:37:1", + "text": " The ENS registry contract." + }, + "fullyImplemented": true, + "id": 560, + "linearizedBaseContracts": [ + 560, + 136 + ], + "name": "ENSRegistry", + "nameLocation": "94:11:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ENSRegistry.Record", + "id": 149, + "members": [ + { + "constant": false, + "id": 144, + "mutability": "mutable", + "name": "owner", + "nameLocation": "151:5:1", + "nodeType": "VariableDeclaration", + "scope": 149, + "src": "143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 143, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "143:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 146, + "mutability": "mutable", + "name": "resolver", + "nameLocation": "174:8:1", + "nodeType": "VariableDeclaration", + "scope": 149, + "src": "166:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 145, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "166:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 148, + "mutability": "mutable", + "name": "ttl", + "nameLocation": "199:3:1", + "nodeType": "VariableDeclaration", + "scope": 149, + "src": "192:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 147, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "name": "Record", + "nameLocation": "126:6:1", + "nodeType": "StructDefinition", + "scope": 560, + "src": "119:90:1", + "visibility": "public" + }, + { + "constant": false, + "id": 154, + "mutability": "mutable", + "name": "records", + "nameLocation": "242:7:1", + "nodeType": "VariableDeclaration", + "scope": 560, + "src": "215:34:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record)" + }, + "typeName": { + "id": 153, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 150, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "223:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "215:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 152, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 151, + "name": "Record", + "nameLocations": [ + "234:6:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 149, + "src": "234:6:1" + }, + "referencedDeclaration": 149, + "src": "234:6:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage_ptr", + "typeString": "struct ENSRegistry.Record" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 160, + "mutability": "mutable", + "name": "operators", + "nameLocation": "300:9:1", + "nodeType": "VariableDeclaration", + "scope": 560, + "src": "255:54:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 159, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "263:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "255:44:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 158, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "282:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "274:24:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 157, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "293:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 186, + "nodeType": "Block", + "src": "420:133:1", + "statements": [ + { + "assignments": [ + 165 + ], + "declarations": [ + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "owner", + "nameLocation": "438:5:1", + "nodeType": "VariableDeclaration", + "scope": 186, + "src": "430:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 164, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "430:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 170, + "initialValue": { + "expression": { + "baseExpression": { + "id": 166, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 168, + "indexExpression": { + "id": 167, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 162, + "src": "454:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "446:13:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 169, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "460:5:1", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 144, + "src": "446:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "430:35:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 172, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "483:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 173, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "496:6:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "492:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "483:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 176, + "name": "operators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "506:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 178, + "indexExpression": { + "id": 177, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "516:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "506:16:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 181, + "indexExpression": { + "expression": { + "id": 179, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "523:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "527:6:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "523:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "506:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "483:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 171, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "475:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 184, + "nodeType": "ExpressionStatement", + "src": "475:60:1" + }, + { + "id": 185, + "nodeType": "PlaceholderStatement", + "src": "545:1:1" + } + ] + }, + "id": 187, + "name": "authorised", + "nameLocation": "395:10:1", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 162, + "mutability": "mutable", + "name": "node", + "nameLocation": "414:4:1", + "nodeType": "VariableDeclaration", + "scope": 187, + "src": "406:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 161, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "406:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "405:14:1" + }, + "src": "386:167:1", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 199, + "nodeType": "Block", + "src": "639:48:1", + "statements": [ + { + "expression": { + "id": 197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 191, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 193, + "indexExpression": { + "hexValue": "307830", + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "657:3:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "649:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 194, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "662:5:1", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 144, + "src": "649:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 195, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "670:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "674:6:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "670:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "649:31:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 198, + "nodeType": "ExpressionStatement", + "src": "649:31:1" + } + ] + }, + "documentation": { + "id": 188, + "nodeType": "StructuredDocumentation", + "src": "559:54:1", + "text": " @dev Constructs a new ENS registry." + }, + "id": 200, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 189, + "nodeType": "ParameterList", + "parameters": [], + "src": "629:2:1" + }, + "returnParameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [], + "src": "639:0:1" + }, + "scope": 560, + "src": "618:69:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 46 + ], + "body": { + "id": 224, + "nodeType": "Block", + "src": "1070:87:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 214, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "1089:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 215, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "1095:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 213, + "name": "setOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "1080:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1080:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 217, + "nodeType": "ExpressionStatement", + "src": "1080:21:1" + }, + { + "expression": { + "arguments": [ + { + "id": 219, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "1130:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 220, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 207, + "src": "1136:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 221, + "name": "ttl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 209, + "src": "1146:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 218, + "name": "_setResolverAndTTL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "1111:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint64_$returns$__$", + "typeString": "function (bytes32,address,uint64)" + } + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1111:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 223, + "nodeType": "ExpressionStatement", + "src": "1111:39:1" + } + ] + }, + "documentation": { + "id": 201, + "nodeType": "StructuredDocumentation", + "src": "693:230:1", + "text": " @dev Sets the record for a node.\n @param node The node to update.\n @param owner The address of the new owner.\n @param resolver The address of the resolver.\n @param ttl The TTL in seconds." + }, + "functionSelector": "cf408823", + "id": 225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setRecord", + "nameLocation": "937:9:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 211, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1061:8:1" + }, + "parameters": { + "id": 210, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 203, + "mutability": "mutable", + "name": "node", + "nameLocation": "964:4:1", + "nodeType": "VariableDeclaration", + "scope": 225, + "src": "956:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 202, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "956:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 205, + "mutability": "mutable", + "name": "owner", + "nameLocation": "986:5:1", + "nodeType": "VariableDeclaration", + "scope": 225, + "src": "978:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "978:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "resolver", + "nameLocation": "1009:8:1", + "nodeType": "VariableDeclaration", + "scope": 225, + "src": "1001:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1001:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 209, + "mutability": "mutable", + "name": "ttl", + "nameLocation": "1034:3:1", + "nodeType": "VariableDeclaration", + "scope": 225, + "src": "1027:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 208, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1027:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "946:97:1" + }, + "returnParameters": { + "id": 212, + "nodeType": "ParameterList", + "parameters": [], + "src": "1070:0:1" + }, + "scope": 560, + "src": "928:229:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "external" + }, + { + "baseFunctions": [ + 59 + ], + "body": { + "id": 254, + "nodeType": "Block", + "src": "1636:122:1", + "statements": [ + { + "assignments": [ + 241 + ], + "declarations": [ + { + "constant": false, + "id": 241, + "mutability": "mutable", + "name": "subnode", + "nameLocation": "1654:7:1", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "1646:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 240, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1646:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 247, + "initialValue": { + "arguments": [ + { + "id": 243, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 228, + "src": "1680:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 244, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 230, + "src": "1686:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 245, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "1693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 242, + "name": "setSubnodeOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "1664:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$", + "typeString": "function (bytes32,bytes32,address) returns (bytes32)" + } + }, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1664:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1646:53:1" + }, + { + "expression": { + "arguments": [ + { + "id": 249, + "name": "subnode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "1728:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 250, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "1737:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 251, + "name": "ttl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "1747:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 248, + "name": "_setResolverAndTTL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "1709:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint64_$returns$__$", + "typeString": "function (bytes32,address,uint64)" + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1709:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 253, + "nodeType": "ExpressionStatement", + "src": "1709:42:1" + } + ] + }, + "documentation": { + "id": 226, + "nodeType": "StructuredDocumentation", + "src": "1163:296:1", + "text": " @dev Sets the record for a subnode.\n @param node The parent node.\n @param label The hash of the label specifying the subnode.\n @param owner The address of the new owner.\n @param resolver The address of the resolver.\n @param ttl The TTL in seconds." + }, + "functionSelector": "5ef2c7f0", + "id": 255, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setSubnodeRecord", + "nameLocation": "1473:16:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 238, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1627:8:1" + }, + "parameters": { + "id": 237, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 228, + "mutability": "mutable", + "name": "node", + "nameLocation": "1507:4:1", + "nodeType": "VariableDeclaration", + "scope": 255, + "src": "1499:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 227, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1499:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 230, + "mutability": "mutable", + "name": "label", + "nameLocation": "1529:5:1", + "nodeType": "VariableDeclaration", + "scope": 255, + "src": "1521:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 229, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1521:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 232, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1552:5:1", + "nodeType": "VariableDeclaration", + "scope": 255, + "src": "1544:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 231, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1544:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 234, + "mutability": "mutable", + "name": "resolver", + "nameLocation": "1575:8:1", + "nodeType": "VariableDeclaration", + "scope": 255, + "src": "1567:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 233, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1567:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 236, + "mutability": "mutable", + "name": "ttl", + "nameLocation": "1600:3:1", + "nodeType": "VariableDeclaration", + "scope": 255, + "src": "1593:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 235, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1593:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1489:120:1" + }, + "returnParameters": { + "id": 239, + "nodeType": "ParameterList", + "parameters": [], + "src": "1636:0:1" + }, + "scope": 560, + "src": "1464:294:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "external" + }, + { + "baseFunctions": [ + 84 + ], + "body": { + "id": 277, + "nodeType": "Block", + "src": "2107:75:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 268, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "2127:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 269, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 260, + "src": "2133:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 267, + "name": "_setOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 509, + "src": "2117:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2117:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 271, + "nodeType": "ExpressionStatement", + "src": "2117:22:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 273, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "2163:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 274, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 260, + "src": "2169:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 272, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "2154:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2154:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 276, + "nodeType": "EmitStatement", + "src": "2149:26:1" + } + ] + }, + "documentation": { + "id": 256, + "nodeType": "StructuredDocumentation", + "src": "1764:228:1", + "text": " @dev Transfers ownership of a node to a new address. May only be called by the current owner of the node.\n @param node The node to transfer ownership of.\n @param owner The address of the new owner." + }, + "functionSelector": "5b0fc9c3", + "id": 278, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 264, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "2101:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 265, + "kind": "modifierInvocation", + "modifierName": { + "id": 263, + "name": "authorised", + "nameLocations": [ + "2090:10:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 187, + "src": "2090:10:1" + }, + "nodeType": "ModifierInvocation", + "src": "2090:16:1" + } + ], + "name": "setOwner", + "nameLocation": "2006:8:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 262, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2081:8:1" + }, + "parameters": { + "id": 261, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 258, + "mutability": "mutable", + "name": "node", + "nameLocation": "2032:4:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "2024:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 257, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 260, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2054:5:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "2046:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 259, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2046:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2014:51:1" + }, + "returnParameters": { + "id": 266, + "nodeType": "ParameterList", + "parameters": [], + "src": "2107:0:1" + }, + "scope": 560, + "src": "1997:185:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 70 + ], + "body": { + "id": 317, + "nodeType": "Block", + "src": "2652:177:1", + "statements": [ + { + "assignments": [ + 295 + ], + "declarations": [ + { + "constant": false, + "id": 295, + "mutability": "mutable", + "name": "subnode", + "nameLocation": "2670:7:1", + "nodeType": "VariableDeclaration", + "scope": 317, + "src": "2662:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 294, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2662:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 303, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 299, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "2707:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 300, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "2713:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 297, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2690:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2694:12:1", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "2690:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2690:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 296, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2680:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2680:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2662:58:1" + }, + { + "expression": { + "arguments": [ + { + "id": 305, + "name": "subnode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "2740:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 306, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "2749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 304, + "name": "_setOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 509, + "src": "2730:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2730:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 308, + "nodeType": "ExpressionStatement", + "src": "2730:25:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 310, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "2779:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 311, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "2785:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 312, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "2792:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 309, + "name": "NewOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "2770:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,bytes32,address)" + } + }, + "id": 313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2770:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 314, + "nodeType": "EmitStatement", + "src": "2765:33:1" + }, + { + "expression": { + "id": 315, + "name": "subnode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "2815:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 293, + "id": 316, + "nodeType": "Return", + "src": "2808:14:1" + } + ] + }, + "documentation": { + "id": 279, + "nodeType": "StructuredDocumentation", + "src": "2188:301:1", + "text": " @dev Transfers ownership of a subnode keccak256(node, label) to a new address. May only be called by the owner of the parent node.\n @param node The parent node.\n @param label The hash of the label specifying the subnode.\n @param owner The address of the new owner." + }, + "functionSelector": "06ab5923", + "id": 318, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 289, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "2628:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 290, + "kind": "modifierInvocation", + "modifierName": { + "id": 288, + "name": "authorised", + "nameLocations": [ + "2617:10:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 187, + "src": "2617:10:1" + }, + "nodeType": "ModifierInvocation", + "src": "2617:16:1" + } + ], + "name": "setSubnodeOwner", + "nameLocation": "2503:15:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 287, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2608:8:1" + }, + "parameters": { + "id": 286, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "node", + "nameLocation": "2536:4:1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2528:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 280, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 283, + "mutability": "mutable", + "name": "label", + "nameLocation": "2558:5:1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2550:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 282, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2550:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 285, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2581:5:1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2573:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2573:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2518:74:1" + }, + "returnParameters": { + "id": 293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 292, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2643:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 291, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2643:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2642:9:1" + }, + "scope": 560, + "src": "2494:335:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 77 + ], + "body": { + "id": 342, + "nodeType": "Block", + "src": "3120:92:1", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 331, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "3147:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 332, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "3153:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 330, + "name": "NewResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "3135:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3135:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 334, + "nodeType": "EmitStatement", + "src": "3130:32:1" + }, + { + "expression": { + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 335, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "3172:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 337, + "indexExpression": { + "id": 336, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "3180:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3172:13:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 338, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3186:8:1", + "memberName": "resolver", + "nodeType": "MemberAccess", + "referencedDeclaration": 146, + "src": "3172:22:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 339, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "3197:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3172:33:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 341, + "nodeType": "ExpressionStatement", + "src": "3172:33:1" + } + ] + }, + "documentation": { + "id": 319, + "nodeType": "StructuredDocumentation", + "src": "2835:164:1", + "text": " @dev Sets the resolver address for the specified node.\n @param node The node to update.\n @param resolver The address of the resolver." + }, + "functionSelector": "1896f70a", + "id": 343, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 327, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "3114:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 328, + "kind": "modifierInvocation", + "modifierName": { + "id": 326, + "name": "authorised", + "nameLocations": [ + "3103:10:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 187, + "src": "3103:10:1" + }, + "nodeType": "ModifierInvocation", + "src": "3103:16:1" + } + ], + "name": "setResolver", + "nameLocation": "3013:11:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 325, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3094:8:1" + }, + "parameters": { + "id": 324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 321, + "mutability": "mutable", + "name": "node", + "nameLocation": "3042:4:1", + "nodeType": "VariableDeclaration", + "scope": 343, + "src": "3034:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 320, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3034:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 323, + "mutability": "mutable", + "name": "resolver", + "nameLocation": "3064:8:1", + "nodeType": "VariableDeclaration", + "scope": 343, + "src": "3056:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3056:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3024:54:1" + }, + "returnParameters": { + "id": 329, + "nodeType": "ParameterList", + "parameters": [], + "src": "3120:0:1" + }, + "scope": 560, + "src": "3004:208:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 91 + ], + "body": { + "id": 367, + "nodeType": "Block", + "src": "3465:72:1", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 356, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 346, + "src": "3487:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 357, + "name": "ttl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 348, + "src": "3493:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 355, + "name": "NewTTL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "3480:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint64_$returns$__$", + "typeString": "function (bytes32,uint64)" + } + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3480:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 359, + "nodeType": "EmitStatement", + "src": "3475:22:1" + }, + { + "expression": { + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 360, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "3507:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 362, + "indexExpression": { + "id": 361, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 346, + "src": "3515:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3507:13:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 363, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3521:3:1", + "memberName": "ttl", + "nodeType": "MemberAccess", + "referencedDeclaration": 148, + "src": "3507:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 364, + "name": "ttl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 348, + "src": "3527:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "3507:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 366, + "nodeType": "ExpressionStatement", + "src": "3507:23:1" + } + ] + }, + "documentation": { + "id": 344, + "nodeType": "StructuredDocumentation", + "src": "3218:137:1", + "text": " @dev Sets the TTL for the specified node.\n @param node The node to update.\n @param ttl The TTL in seconds." + }, + "functionSelector": "14ab9038", + "id": 368, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 352, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 346, + "src": "3459:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 353, + "kind": "modifierInvocation", + "modifierName": { + "id": 351, + "name": "authorised", + "nameLocations": [ + "3448:10:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 187, + "src": "3448:10:1" + }, + "nodeType": "ModifierInvocation", + "src": "3448:16:1" + } + ], + "name": "setTTL", + "nameLocation": "3369:6:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 350, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3439:8:1" + }, + "parameters": { + "id": 349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 346, + "mutability": "mutable", + "name": "node", + "nameLocation": "3393:4:1", + "nodeType": "VariableDeclaration", + "scope": 368, + "src": "3385:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 345, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3385:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 348, + "mutability": "mutable", + "name": "ttl", + "nameLocation": "3414:3:1", + "nodeType": "VariableDeclaration", + "scope": 368, + "src": "3407:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 347, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3407:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3375:48:1" + }, + "returnParameters": { + "id": 354, + "nodeType": "ParameterList", + "parameters": [], + "src": "3465:0:1" + }, + "scope": 560, + "src": "3360:177:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 98 + ], + "body": { + "id": 393, + "nodeType": "Block", + "src": "3979:120:1", + "statements": [ + { + "expression": { + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 377, + "name": "operators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "3989:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 381, + "indexExpression": { + "expression": { + "id": 378, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4003:6:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3999:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3989:21:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 382, + "indexExpression": { + "id": 380, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 371, + "src": "4011:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3989:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 383, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "4023:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3989:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 385, + "nodeType": "ExpressionStatement", + "src": "3989:42:1" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 387, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4061:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4065:6:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4061:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 389, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 371, + "src": "4073:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 390, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "4083:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 386, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "4046:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4046:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 392, + "nodeType": "EmitStatement", + "src": "4041:51:1" + } + ] + }, + "documentation": { + "id": 369, + "nodeType": "StructuredDocumentation", + "src": "3543:323:1", + "text": " @dev Enable or disable approval for a third party (\"operator\") to manage\n all of `msg.sender`'s ENS records. Emits the ApprovalForAll event.\n @param operator Address to add to the set of authorized operators.\n @param approved True if the operator is approved, false to revoke approval." + }, + "functionSelector": "a22cb465", + "id": 394, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "3880:17:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 375, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3970:8:1" + }, + "parameters": { + "id": 374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 371, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3915:8:1", + "nodeType": "VariableDeclaration", + "scope": 394, + "src": "3907:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 370, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3907:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 373, + "mutability": "mutable", + "name": "approved", + "nameLocation": "3938:8:1", + "nodeType": "VariableDeclaration", + "scope": 394, + "src": "3933:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 372, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3933:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3897:55:1" + }, + "returnParameters": { + "id": 376, + "nodeType": "ParameterList", + "parameters": [], + "src": "3979:0:1" + }, + "scope": 560, + "src": "3871:228:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "external" + }, + { + "baseFunctions": [ + 105 + ], + "body": { + "id": 425, + "nodeType": "Block", + "src": "4349:153:1", + "statements": [ + { + "assignments": [ + 404 + ], + "declarations": [ + { + "constant": false, + "id": 404, + "mutability": "mutable", + "name": "addr", + "nameLocation": "4367:4:1", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "4359:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 403, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4359:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 409, + "initialValue": { + "expression": { + "baseExpression": { + "id": 405, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "4374:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 407, + "indexExpression": { + "id": 406, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 397, + "src": "4382:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4374:13:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 408, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4388:5:1", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 144, + "src": "4374:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4359:34:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 410, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 404, + "src": "4407:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "id": 413, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4423:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENSRegistry_$560", + "typeString": "contract ENSRegistry" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ENSRegistry_$560", + "typeString": "contract ENSRegistry" + } + ], + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4415:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4415:7:1", + "typeDescriptions": {} + } + }, + "id": 414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4415:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4407:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 422, + "nodeType": "IfStatement", + "src": "4403:71:1", + "trueBody": { + "id": 421, + "nodeType": "Block", + "src": "4430:44:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "307830", + "id": 418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4459:3:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4451:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 416, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4451:7:1", + "typeDescriptions": {} + } + }, + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4451:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 402, + "id": 420, + "nodeType": "Return", + "src": "4444:19:1" + } + ] + } + }, + { + "expression": { + "id": 423, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 404, + "src": "4491:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 402, + "id": 424, + "nodeType": "Return", + "src": "4484:11:1" + } + ] + }, + "documentation": { + "id": 395, + "nodeType": "StructuredDocumentation", + "src": "4105:149:1", + "text": " @dev Returns the address that owns the specified node.\n @param node The specified node.\n @return address of the owner." + }, + "functionSelector": "02571be3", + "id": 426, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "4268:5:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 399, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4322:8:1" + }, + "parameters": { + "id": 398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 397, + "mutability": "mutable", + "name": "node", + "nameLocation": "4291:4:1", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 396, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4273:28:1" + }, + "returnParameters": { + "id": 402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 401, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "4340:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4340:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4339:9:1" + }, + "scope": 560, + "src": "4259:243:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 112 + ], + "body": { + "id": 440, + "nodeType": "Block", + "src": "4768:46:1", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 435, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "4785:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 437, + "indexExpression": { + "id": 436, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "4793:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4785:13:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 438, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4799:8:1", + "memberName": "resolver", + "nodeType": "MemberAccess", + "referencedDeclaration": 146, + "src": "4785:22:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 434, + "id": 439, + "nodeType": "Return", + "src": "4778:29:1" + } + ] + }, + "documentation": { + "id": 427, + "nodeType": "StructuredDocumentation", + "src": "4508:162:1", + "text": " @dev Returns the address of the resolver for the specified node.\n @param node The specified node.\n @return address of the resolver." + }, + "functionSelector": "0178b8bf", + "id": 441, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "resolver", + "nameLocation": "4684:8:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 431, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4741:8:1" + }, + "parameters": { + "id": 430, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 429, + "mutability": "mutable", + "name": "node", + "nameLocation": "4710:4:1", + "nodeType": "VariableDeclaration", + "scope": 441, + "src": "4702:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 428, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4702:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4692:28:1" + }, + "returnParameters": { + "id": 434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 433, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 441, + "src": "4759:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 432, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4759:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4758:9:1" + }, + "scope": 560, + "src": "4675:139:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 119 + ], + "body": { + "id": 455, + "nodeType": "Block", + "src": "5055:41:1", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 450, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "5072:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 452, + "indexExpression": { + "id": 451, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 444, + "src": "5080:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5072:13:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 453, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5086:3:1", + "memberName": "ttl", + "nodeType": "MemberAccess", + "referencedDeclaration": 148, + "src": "5072:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 449, + "id": 454, + "nodeType": "Return", + "src": "5065:24:1" + } + ] + }, + "documentation": { + "id": 442, + "nodeType": "StructuredDocumentation", + "src": "4820:157:1", + "text": " @dev Returns the TTL of a node, and any records associated with it.\n @param node The specified node.\n @return ttl of the node." + }, + "functionSelector": "16a25cbd", + "id": 456, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ttl", + "nameLocation": "4991:3:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 446, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5029:8:1" + }, + "parameters": { + "id": 445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 444, + "mutability": "mutable", + "name": "node", + "nameLocation": "5003:4:1", + "nodeType": "VariableDeclaration", + "scope": 456, + "src": "4995:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 443, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4994:14:1" + }, + "returnParameters": { + "id": 449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 448, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 456, + "src": "5047:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 447, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5047:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "5046:8:1" + }, + "scope": 560, + "src": "4982:114:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 126 + ], + "body": { + "id": 475, + "nodeType": "Block", + "src": "5360:59:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 465, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "5377:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 467, + "indexExpression": { + "id": 466, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 459, + "src": "5385:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5377:13:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 468, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5391:5:1", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 144, + "src": "5377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "307830", + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5408:3:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5400:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5400:7:1", + "typeDescriptions": {} + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5400:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5377:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 464, + "id": 474, + "nodeType": "Return", + "src": "5370:42:1" + } + ] + }, + "documentation": { + "id": 457, + "nodeType": "StructuredDocumentation", + "src": "5102:159:1", + "text": " @dev Returns whether a record has been imported to the registry.\n @param node The specified node.\n @return Bool if record exists" + }, + "functionSelector": "f79fe538", + "id": 476, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "recordExists", + "nameLocation": "5275:12:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 461, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5336:8:1" + }, + "parameters": { + "id": 460, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 459, + "mutability": "mutable", + "name": "node", + "nameLocation": "5305:4:1", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "5297:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 458, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5287:28:1" + }, + "returnParameters": { + "id": 464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 463, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "5354:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 462, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5354:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5353:6:1" + }, + "scope": 560, + "src": "5266:153:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 135 + ], + "body": { + "id": 493, + "nodeType": "Block", + "src": "5859:50:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 487, + "name": "operators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "5876:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 489, + "indexExpression": { + "id": 488, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "5886:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5876:16:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 491, + "indexExpression": { + "id": 490, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 481, + "src": "5893:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5876:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 486, + "id": 492, + "nodeType": "Return", + "src": "5869:33:1" + } + ] + }, + "documentation": { + "id": 477, + "nodeType": "StructuredDocumentation", + "src": "5425:302:1", + "text": " @dev Query if an address is an authorized operator for another address.\n @param owner The address that owns the records.\n @param operator The address that acts on behalf of the owner.\n @return True if `operator` is an approved operator for `owner`, false otherwise." + }, + "functionSelector": "e985e9c5", + "id": 494, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "5741:16:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 483, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5835:8:1" + }, + "parameters": { + "id": 482, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 479, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5775:5:1", + "nodeType": "VariableDeclaration", + "scope": 494, + "src": "5767:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5767:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 481, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5798:8:1", + "nodeType": "VariableDeclaration", + "scope": 494, + "src": "5790:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5790:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5757:55:1" + }, + "returnParameters": { + "id": 486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 485, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 494, + "src": "5853:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 484, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5853:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5852:6:1" + }, + "scope": 560, + "src": "5732:177:1", + "stateMutability": "view", + "virtual": true, + "visibility": "external" + }, + { + "body": { + "id": 508, + "nodeType": "Block", + "src": "5980:44:1", + "statements": [ + { + "expression": { + "id": 506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 501, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "5990:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 503, + "indexExpression": { + "id": 502, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "5998:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5990:13:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 504, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6004:5:1", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 144, + "src": "5990:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 505, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6012:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5990:27:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 507, + "nodeType": "ExpressionStatement", + "src": "5990:27:1" + } + ] + }, + "id": 509, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setOwner", + "nameLocation": "5924:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 499, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 496, + "mutability": "mutable", + "name": "node", + "nameLocation": "5942:4:1", + "nodeType": "VariableDeclaration", + "scope": 509, + "src": "5934:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 495, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5934:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 498, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5956:5:1", + "nodeType": "VariableDeclaration", + "scope": 509, + "src": "5948:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5948:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5933:29:1" + }, + "returnParameters": { + "id": 500, + "nodeType": "ParameterList", + "parameters": [], + "src": "5980:0:1" + }, + "scope": 560, + "src": "5915:109:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 558, + "nodeType": "Block", + "src": "6141:284:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 518, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 513, + "src": "6155:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "baseExpression": { + "id": 519, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6167:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 521, + "indexExpression": { + "id": 520, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "6175:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6167:13:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 522, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6181:8:1", + "memberName": "resolver", + "nodeType": "MemberAccess", + "referencedDeclaration": 146, + "src": "6167:22:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6155:34:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 537, + "nodeType": "IfStatement", + "src": "6151:144:1", + "trueBody": { + "id": 536, + "nodeType": "Block", + "src": "6191:104:1", + "statements": [ + { + "expression": { + "id": 529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 524, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6205:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 526, + "indexExpression": { + "id": 525, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "6213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6205:13:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 527, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6219:8:1", + "memberName": "resolver", + "nodeType": "MemberAccess", + "referencedDeclaration": 146, + "src": "6205:22:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 528, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 513, + "src": "6230:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6205:33:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 530, + "nodeType": "ExpressionStatement", + "src": "6205:33:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 532, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "6269:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 533, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 513, + "src": "6275:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 531, + "name": "NewResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "6257:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6257:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 535, + "nodeType": "EmitStatement", + "src": "6252:32:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 538, + "name": "ttl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 515, + "src": "6309:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "baseExpression": { + "id": 539, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6316:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 541, + "indexExpression": { + "id": 540, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "6324:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6316:13:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 542, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6330:3:1", + "memberName": "ttl", + "nodeType": "MemberAccess", + "referencedDeclaration": 148, + "src": "6316:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6309:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 557, + "nodeType": "IfStatement", + "src": "6305:114:1", + "trueBody": { + "id": 556, + "nodeType": "Block", + "src": "6335:84:1", + "statements": [ + { + "expression": { + "id": 549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 544, + "name": "records", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$", + "typeString": "mapping(bytes32 => struct ENSRegistry.Record storage ref)" + } + }, + "id": 546, + "indexExpression": { + "id": 545, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "6357:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6349:13:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$149_storage", + "typeString": "struct ENSRegistry.Record storage ref" + } + }, + "id": 547, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6363:3:1", + "memberName": "ttl", + "nodeType": "MemberAccess", + "referencedDeclaration": 148, + "src": "6349:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 548, + "name": "ttl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 515, + "src": "6369:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6349:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 550, + "nodeType": "ExpressionStatement", + "src": "6349:23:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 552, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "6398:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 553, + "name": "ttl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 515, + "src": "6404:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 551, + "name": "NewTTL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "6391:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint64_$returns$__$", + "typeString": "function (bytes32,uint64)" + } + }, + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6391:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 555, + "nodeType": "EmitStatement", + "src": "6386:22:1" + } + ] + } + } + ] + }, + "id": 559, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setResolverAndTTL", + "nameLocation": "6039:18:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 516, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 511, + "mutability": "mutable", + "name": "node", + "nameLocation": "6075:4:1", + "nodeType": "VariableDeclaration", + "scope": 559, + "src": "6067:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 510, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6067:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 513, + "mutability": "mutable", + "name": "resolver", + "nameLocation": "6097:8:1", + "nodeType": "VariableDeclaration", + "scope": 559, + "src": "6089:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 512, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6089:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 515, + "mutability": "mutable", + "name": "ttl", + "nameLocation": "6122:3:1", + "nodeType": "VariableDeclaration", + "scope": 559, + "src": "6115:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 514, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "6115:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "6057:74:1" + }, + "returnParameters": { + "id": 517, + "nodeType": "ParameterList", + "parameters": [], + "src": "6141:0:1" + }, + "scope": 560, + "src": "6030:395:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 561, + "src": "85:6342:1", + "usedErrors": [], + "usedEvents": [ + 9, + 15, + 21, + 27, + 35 + ] + } + ], + "src": "0:6428:1" + }, + "id": 1 + }, + "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", + "exportedSymbols": { + "Initializable": [ + 1146 + ], + "Ownable2StepUpgradeable": [ + 697 + ], + "OwnableUpgradeable": [ + 892 + ] + }, + "id": 698, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 562, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:2" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", + "file": "./OwnableUpgradeable.sol", + "id": 564, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 698, + "sourceUnit": 893, + "src": "133:60:2", + "symbolAliases": [ + { + "foreign": { + "id": 563, + "name": "OwnableUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 892, + "src": "141:18:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 566, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 698, + "sourceUnit": 1147, + "src": "194:63:2", + "symbolAliases": [ + { + "foreign": { + "id": 565, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "202:13:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 568, + "name": "Initializable", + "nameLocations": [ + "757:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1146, + "src": "757:13:2" + }, + "id": 569, + "nodeType": "InheritanceSpecifier", + "src": "757:13:2" + }, + { + "baseName": { + "id": 570, + "name": "OwnableUpgradeable", + "nameLocations": [ + "772:18:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 892, + "src": "772:18:2" + }, + "id": 571, + "nodeType": "InheritanceSpecifier", + "src": "772:18:2" + } + ], + "canonicalName": "Ownable2StepUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 567, + "nodeType": "StructuredDocumentation", + "src": "259:452:2", + "text": " @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is specified at deployment time in the constructor for `Ownable`. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)." + }, + "fullyImplemented": true, + "id": 697, + "linearizedBaseContracts": [ + 697, + 892, + 1192, + 1146 + ], + "name": "Ownable2StepUpgradeable", + "nameLocation": "730:23:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Ownable2StepUpgradeable.Ownable2StepStorage", + "documentation": { + "id": 572, + "nodeType": "StructuredDocumentation", + "src": "797:70:2", + "text": "@custom:storage-location erc7201:openzeppelin.storage.Ownable2Step" + }, + "id": 575, + "members": [ + { + "constant": false, + "id": 574, + "mutability": "mutable", + "name": "_pendingOwner", + "nameLocation": "917:13:2", + "nodeType": "VariableDeclaration", + "scope": 575, + "src": "909:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 573, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "909:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "name": "Ownable2StepStorage", + "nameLocation": "879:19:2", + "nodeType": "StructDefinition", + "scope": 697, + "src": "872:65:2", + "visibility": "public" + }, + { + "constant": true, + "id": 578, + "mutability": "constant", + "name": "Ownable2StepStorageLocation", + "nameLocation": "1084:27:2", + "nodeType": "VariableDeclaration", + "scope": 697, + "src": "1059:121:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 576, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1059:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307832333765313538323232653365363936386237326239646230643830343361616366303734616439663635306630643136303662346438326565343332633030", + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1114:66:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_16053720875717120191110171845200109550086765943194951757191984851604933389312_by_1", + "typeString": "int_const 1605...(69 digits omitted)...9312" + }, + "value": "0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00" + }, + "visibility": "private" + }, + { + "body": { + "id": 585, + "nodeType": "Block", + "src": "1275:86:2", + "statements": [ + { + "AST": { + "nativeSrc": "1294:61:2", + "nodeType": "YulBlock", + "src": "1294:61:2", + "statements": [ + { + "nativeSrc": "1308:37:2", + "nodeType": "YulAssignment", + "src": "1308:37:2", + "value": { + "name": "Ownable2StepStorageLocation", + "nativeSrc": "1318:27:2", + "nodeType": "YulIdentifier", + "src": "1318:27:2" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "1308:6:2", + "nodeType": "YulIdentifier", + "src": "1308:6:2" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 582, + "isOffset": false, + "isSlot": true, + "src": "1308:6:2", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 578, + "isOffset": false, + "isSlot": false, + "src": "1318:27:2", + "valueSize": 1 + } + ], + "id": 584, + "nodeType": "InlineAssembly", + "src": "1285:70:2" + } + ] + }, + "id": 586, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getOwnable2StepStorage", + "nameLocation": "1196:23:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [], + "src": "1219:2:2" + }, + "returnParameters": { + "id": 583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 582, + "mutability": "mutable", + "name": "$", + "nameLocation": "1272:1:2", + "nodeType": "VariableDeclaration", + "scope": 586, + "src": "1244:29:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + }, + "typeName": { + "id": 581, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 580, + "name": "Ownable2StepStorage", + "nameLocations": [ + "1244:19:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 575, + "src": "1244:19:2" + }, + "referencedDeclaration": 575, + "src": "1244:19:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + } + }, + "visibility": "internal" + } + ], + "src": "1243:31:2" + }, + "scope": 697, + "src": "1187:174:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "eventSelector": "38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", + "id": 592, + "name": "OwnershipTransferStarted", + "nameLocation": "1373:24:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 588, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1414:13:2", + "nodeType": "VariableDeclaration", + "scope": 592, + "src": "1398:29:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1398:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 590, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1445:8:2", + "nodeType": "VariableDeclaration", + "scope": 592, + "src": "1429:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1429:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1397:57:2" + }, + "src": "1367:88:2" + }, + { + "body": { + "id": 597, + "nodeType": "Block", + "src": "1518:7:2", + "statements": [] + }, + "id": 598, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 595, + "kind": "modifierInvocation", + "modifierName": { + "id": 594, + "name": "onlyInitializing", + "nameLocations": [ + "1501:16:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1055, + "src": "1501:16:2" + }, + "nodeType": "ModifierInvocation", + "src": "1501:16:2" + } + ], + "name": "__Ownable2Step_init", + "nameLocation": "1470:19:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 593, + "nodeType": "ParameterList", + "parameters": [], + "src": "1489:2:2" + }, + "returnParameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [], + "src": "1518:0:2" + }, + "scope": 697, + "src": "1461:64:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 603, + "nodeType": "Block", + "src": "1598:7:2", + "statements": [] + }, + "id": 604, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 601, + "kind": "modifierInvocation", + "modifierName": { + "id": 600, + "name": "onlyInitializing", + "nameLocations": [ + "1581:16:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1055, + "src": "1581:16:2" + }, + "nodeType": "ModifierInvocation", + "src": "1581:16:2" + } + ], + "name": "__Ownable2Step_init_unchained", + "nameLocation": "1540:29:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 599, + "nodeType": "ParameterList", + "parameters": [], + "src": "1569:2:2" + }, + "returnParameters": { + "id": 602, + "nodeType": "ParameterList", + "parameters": [], + "src": "1598:0:2" + }, + "scope": 697, + "src": "1531:74:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 619, + "nodeType": "Block", + "src": "1742:106:2", + "statements": [ + { + "assignments": [ + 612 + ], + "declarations": [ + { + "constant": false, + "id": 612, + "mutability": "mutable", + "name": "$", + "nameLocation": "1780:1:2", + "nodeType": "VariableDeclaration", + "scope": 619, + "src": "1752:29:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + }, + "typeName": { + "id": 611, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 610, + "name": "Ownable2StepStorage", + "nameLocations": [ + "1752:19:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 575, + "src": "1752:19:2" + }, + "referencedDeclaration": 575, + "src": "1752:19:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + } + }, + "visibility": "internal" + } + ], + "id": 615, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 613, + "name": "_getOwnable2StepStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "1784:23:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$575_storage_ptr_$", + "typeString": "function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)" + } + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1784:25:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1752:57:2" + }, + { + "expression": { + "expression": { + "id": 616, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 612, + "src": "1826:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" + } + }, + "id": 617, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1828:13:2", + "memberName": "_pendingOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 574, + "src": "1826:15:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 609, + "id": 618, + "nodeType": "Return", + "src": "1819:22:2" + } + ] + }, + "documentation": { + "id": 605, + "nodeType": "StructuredDocumentation", + "src": "1610:65:2", + "text": " @dev Returns the address of the pending owner." + }, + "functionSelector": "e30c3978", + "id": 620, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "pendingOwner", + "nameLocation": "1689:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [], + "src": "1701:2:2" + }, + "returnParameters": { + "id": 609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 608, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "1733:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1733:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1732:9:2" + }, + "scope": 697, + "src": "1680:168:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 862 + ], + "body": { + "id": 647, + "nodeType": "Block", + "src": "2120:168:2", + "statements": [ + { + "assignments": [ + 631 + ], + "declarations": [ + { + "constant": false, + "id": 631, + "mutability": "mutable", + "name": "$", + "nameLocation": "2158:1:2", + "nodeType": "VariableDeclaration", + "scope": 647, + "src": "2130:29:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + }, + "typeName": { + "id": 630, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 629, + "name": "Ownable2StepStorage", + "nameLocations": [ + "2130:19:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 575, + "src": "2130:19:2" + }, + "referencedDeclaration": 575, + "src": "2130:19:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + } + }, + "visibility": "internal" + } + ], + "id": 634, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 632, + "name": "_getOwnable2StepStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "2162:23:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$575_storage_ptr_$", + "typeString": "function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)" + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2162:25:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2130:57:2" + }, + { + "expression": { + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 635, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "2197:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" + } + }, + "id": 637, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2199:13:2", + "memberName": "_pendingOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 574, + "src": "2197:15:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 638, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 623, + "src": "2215:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2197:26:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 640, + "nodeType": "ExpressionStatement", + "src": "2197:26:2" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 642, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2263:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2263:7:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 644, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 623, + "src": "2272:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 641, + "name": "OwnershipTransferStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "2238:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2238:43:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 646, + "nodeType": "EmitStatement", + "src": "2233:48:2" + } + ] + }, + "documentation": { + "id": 621, + "nodeType": "StructuredDocumentation", + "src": "1854:182:2", + "text": " @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 648, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 627, + "kind": "modifierInvocation", + "modifierName": { + "id": 626, + "name": "onlyOwner", + "nameLocations": [ + "2110:9:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 787, + "src": "2110:9:2" + }, + "nodeType": "ModifierInvocation", + "src": "2110:9:2" + } + ], + "name": "transferOwnership", + "nameLocation": "2050:17:2", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 625, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2101:8:2" + }, + "parameters": { + "id": 624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 623, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2076:8:2", + "nodeType": "VariableDeclaration", + "scope": 648, + "src": "2068:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2068:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2067:18:2" + }, + "returnParameters": { + "id": 628, + "nodeType": "ParameterList", + "parameters": [], + "src": "2120:0:2" + }, + "scope": 697, + "src": "2041:247:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 891 + ], + "body": { + "id": 671, + "nodeType": "Block", + "src": "2544:150:2", + "statements": [ + { + "assignments": [ + 657 + ], + "declarations": [ + { + "constant": false, + "id": 657, + "mutability": "mutable", + "name": "$", + "nameLocation": "2582:1:2", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "2554:29:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + }, + "typeName": { + "id": 656, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 655, + "name": "Ownable2StepStorage", + "nameLocations": [ + "2554:19:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 575, + "src": "2554:19:2" + }, + "referencedDeclaration": 575, + "src": "2554:19:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + } + }, + "visibility": "internal" + } + ], + "id": 660, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 658, + "name": "_getOwnable2StepStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "2586:23:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$575_storage_ptr_$", + "typeString": "function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)" + } + }, + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2586:25:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2554:57:2" + }, + { + "expression": { + "id": 663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "2621:22:2", + "subExpression": { + "expression": { + "id": 661, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 657, + "src": "2628:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" + } + }, + "id": 662, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2630:13:2", + "memberName": "_pendingOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 574, + "src": "2628:15:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 664, + "nodeType": "ExpressionStatement", + "src": "2621:22:2" + }, + { + "expression": { + "arguments": [ + { + "id": 668, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 651, + "src": "2678:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 665, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2653:5:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$697_$", + "typeString": "type(contract super Ownable2StepUpgradeable)" + } + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2659:18:2", + "memberName": "_transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 891, + "src": "2653:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2653:34:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 670, + "nodeType": "ExpressionStatement", + "src": "2653:34:2" + } + ] + }, + "documentation": { + "id": 649, + "nodeType": "StructuredDocumentation", + "src": "2294:173:2", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction." + }, + "id": 672, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2481:18:2", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 653, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2535:8:2" + }, + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2508:8:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "2500:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2500:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2499:18:2" + }, + "returnParameters": { + "id": 654, + "nodeType": "ParameterList", + "parameters": [], + "src": "2544:0:2" + }, + "scope": 697, + "src": "2472:222:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 695, + "nodeType": "Block", + "src": "2816:187:2", + "statements": [ + { + "assignments": [ + 677 + ], + "declarations": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "sender", + "nameLocation": "2834:6:2", + "nodeType": "VariableDeclaration", + "scope": 695, + "src": "2826:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2826:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 680, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 678, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "2843:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2843:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2826:29:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 681, + "name": "pendingOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 620, + "src": "2869:12:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2869:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 683, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 677, + "src": "2887:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2869:24:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 690, + "nodeType": "IfStatement", + "src": "2865:96:2", + "trueBody": { + "id": 689, + "nodeType": "Block", + "src": "2895:66:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 686, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 677, + "src": "2943:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 685, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "2916:26:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2916:34:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 688, + "nodeType": "RevertStatement", + "src": "2909:41:2" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 692, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 677, + "src": "2989:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 691, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 672 + ], + "referencedDeclaration": 672, + "src": "2970:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2970:26:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 694, + "nodeType": "ExpressionStatement", + "src": "2970:26:2" + } + ] + }, + "documentation": { + "id": 673, + "nodeType": "StructuredDocumentation", + "src": "2700:69:2", + "text": " @dev The new owner accepts the ownership transfer." + }, + "functionSelector": "79ba5097", + "id": 696, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "acceptOwnership", + "nameLocation": "2783:15:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [], + "src": "2798:2:2" + }, + "returnParameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [], + "src": "2816:0:2" + }, + "scope": 697, + "src": "2774:229:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + } + ], + "scope": 698, + "src": "712:2293:2", + "usedErrors": [ + 728, + 733, + 909, + 912 + ], + "usedEvents": [ + 592, + 739, + 917 + ] + } + ], + "src": "107:2899:2" + }, + "id": 2 + }, + "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", + "exportedSymbols": { + "ContextUpgradeable": [ + 1192 + ], + "Initializable": [ + 1146 + ], + "OwnableUpgradeable": [ + 892 + ] + }, + "id": 893, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 699, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "file": "../utils/ContextUpgradeable.sol", + "id": 701, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 893, + "sourceUnit": 1193, + "src": "128:67:3", + "symbolAliases": [ + { + "foreign": { + "id": 700, + "name": "ContextUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1192, + "src": "136:18:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 703, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 893, + "sourceUnit": 1147, + "src": "196:63:3", + "symbolAliases": [ + { + "foreign": { + "id": 702, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "204:13:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 705, + "name": "Initializable", + "nameLocations": [ + "789:13:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1146, + "src": "789:13:3" + }, + "id": 706, + "nodeType": "InheritanceSpecifier", + "src": "789:13:3" + }, + { + "baseName": { + "id": 707, + "name": "ContextUpgradeable", + "nameLocations": [ + "804:18:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1192, + "src": "804:18:3" + }, + "id": 708, + "nodeType": "InheritanceSpecifier", + "src": "804:18:3" + } + ], + "canonicalName": "OwnableUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 704, + "nodeType": "StructuredDocumentation", + "src": "261:487:3", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 892, + "linearizedBaseContracts": [ + 892, + 1192, + 1146 + ], + "name": "OwnableUpgradeable", + "nameLocation": "767:18:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "OwnableUpgradeable.OwnableStorage", + "documentation": { + "id": 709, + "nodeType": "StructuredDocumentation", + "src": "829:65:3", + "text": "@custom:storage-location erc7201:openzeppelin.storage.Ownable" + }, + "id": 712, + "members": [ + { + "constant": false, + "id": 711, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "939:6:3", + "nodeType": "VariableDeclaration", + "scope": 712, + "src": "931:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 710, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "name": "OwnableStorage", + "nameLocation": "906:14:3", + "nodeType": "StructDefinition", + "scope": 892, + "src": "899:53:3", + "visibility": "public" + }, + { + "constant": true, + "id": 715, + "mutability": "constant", + "name": "OwnableStorageLocation", + "nameLocation": "1094:22:3", + "nodeType": "VariableDeclaration", + "scope": 892, + "src": "1069:116:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 713, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1069:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307839303136643039643732643430666461653266643863656163366236323334633737303632313466643339633163643165363039613035323863313939333030", + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1119:66:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_65173360639460082030725920392146925864023520599682862633725751242436743107328_by_1", + "typeString": "int_const 6517...(69 digits omitted)...7328" + }, + "value": "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" + }, + "visibility": "private" + }, + { + "body": { + "id": 722, + "nodeType": "Block", + "src": "1270:81:3", + "statements": [ + { + "AST": { + "nativeSrc": "1289:56:3", + "nodeType": "YulBlock", + "src": "1289:56:3", + "statements": [ + { + "nativeSrc": "1303:32:3", + "nodeType": "YulAssignment", + "src": "1303:32:3", + "value": { + "name": "OwnableStorageLocation", + "nativeSrc": "1313:22:3", + "nodeType": "YulIdentifier", + "src": "1313:22:3" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "1303:6:3", + "nodeType": "YulIdentifier", + "src": "1303:6:3" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 719, + "isOffset": false, + "isSlot": true, + "src": "1303:6:3", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 715, + "isOffset": false, + "isSlot": false, + "src": "1313:22:3", + "valueSize": 1 + } + ], + "id": 721, + "nodeType": "InlineAssembly", + "src": "1280:65:3" + } + ] + }, + "id": 723, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getOwnableStorage", + "nameLocation": "1201:18:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 716, + "nodeType": "ParameterList", + "parameters": [], + "src": "1219:2:3" + }, + "returnParameters": { + "id": 720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 719, + "mutability": "mutable", + "name": "$", + "nameLocation": "1267:1:3", + "nodeType": "VariableDeclaration", + "scope": 723, + "src": "1244:24:3", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$712_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + }, + "typeName": { + "id": 718, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 717, + "name": "OwnableStorage", + "nameLocations": [ + "1244:14:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 712, + "src": "1244:14:3" + }, + "referencedDeclaration": 712, + "src": "1244:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$712_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + } + }, + "visibility": "internal" + } + ], + "src": "1243:26:3" + }, + "scope": 892, + "src": "1192:159:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "documentation": { + "id": 724, + "nodeType": "StructuredDocumentation", + "src": "1357:85:3", + "text": " @dev The caller account is not authorized to perform an operation." + }, + "errorSelector": "118cdaa7", + "id": 728, + "name": "OwnableUnauthorizedAccount", + "nameLocation": "1453:26:3", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "account", + "nameLocation": "1488:7:3", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "1480:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1480:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1479:17:3" + }, + "src": "1447:50:3" + }, + { + "documentation": { + "id": 729, + "nodeType": "StructuredDocumentation", + "src": "1503:82:3", + "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" + }, + "errorSelector": "1e4fbdf7", + "id": 733, + "name": "OwnableInvalidOwner", + "nameLocation": "1596:19:3", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 731, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1624:5:3", + "nodeType": "VariableDeclaration", + "scope": 733, + "src": "1616:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1616:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1615:15:3" + }, + "src": "1590:41:3" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 739, + "name": "OwnershipTransferred", + "nameLocation": "1643:20:3", + "nodeType": "EventDefinition", + "parameters": { + "id": 738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 735, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1680:13:3", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "1664:29:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 734, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1664:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 737, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1711:8:3", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "1695:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 736, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1695:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1663:57:3" + }, + "src": "1637:84:3" + }, + { + "body": { + "id": 751, + "nodeType": "Block", + "src": "1919:55:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 748, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 742, + "src": "1954:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 747, + "name": "__Ownable_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "1929:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1929:38:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 750, + "nodeType": "ExpressionStatement", + "src": "1929:38:3" + } + ] + }, + "documentation": { + "id": 740, + "nodeType": "StructuredDocumentation", + "src": "1727:115:3", + "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." + }, + "id": 752, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 745, + "kind": "modifierInvocation", + "modifierName": { + "id": 744, + "name": "onlyInitializing", + "nameLocations": [ + "1902:16:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1055, + "src": "1902:16:3" + }, + "nodeType": "ModifierInvocation", + "src": "1902:16:3" + } + ], + "name": "__Ownable_init", + "nameLocation": "1856:14:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 743, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 742, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1879:12:3", + "nodeType": "VariableDeclaration", + "scope": 752, + "src": "1871:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1871:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1870:22:3" + }, + "returnParameters": { + "id": 746, + "nodeType": "ParameterList", + "parameters": [], + "src": "1919:0:3" + }, + "scope": 892, + "src": "1847:127:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 778, + "nodeType": "Block", + "src": "2062:153:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 759, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 754, + "src": "2076:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2100:1:3", + "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": 761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2092:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 760, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2092:7:3", + "typeDescriptions": {} + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2092:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2076:26:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 773, + "nodeType": "IfStatement", + "src": "2072:95:3", + "trueBody": { + "id": 772, + "nodeType": "Block", + "src": "2104:63:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2153:1:3", + "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": 767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2145:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 766, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2145:7:3", + "typeDescriptions": {} + } + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2145:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 765, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "2125:19:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2125:31:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 771, + "nodeType": "RevertStatement", + "src": "2118:38:3" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 775, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 754, + "src": "2195:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 774, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "2176:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2176:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 777, + "nodeType": "ExpressionStatement", + "src": "2176:32:3" + } + ] + }, + "id": 779, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 757, + "kind": "modifierInvocation", + "modifierName": { + "id": 756, + "name": "onlyInitializing", + "nameLocations": [ + "2045:16:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1055, + "src": "2045:16:3" + }, + "nodeType": "ModifierInvocation", + "src": "2045:16:3" + } + ], + "name": "__Ownable_init_unchained", + "nameLocation": "1989:24:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 754, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "2022:12:3", + "nodeType": "VariableDeclaration", + "scope": 779, + "src": "2014:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 753, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2014:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2013:22:3" + }, + "returnParameters": { + "id": 758, + "nodeType": "ParameterList", + "parameters": [], + "src": "2062:0:3" + }, + "scope": 892, + "src": "1980:235:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 786, + "nodeType": "Block", + "src": "2324:41:3", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 782, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "2334:11:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2334:13:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 784, + "nodeType": "ExpressionStatement", + "src": "2334:13:3" + }, + { + "id": 785, + "nodeType": "PlaceholderStatement", + "src": "2357:1:3" + } + ] + }, + "documentation": { + "id": 780, + "nodeType": "StructuredDocumentation", + "src": "2221:77:3", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 787, + "name": "onlyOwner", + "nameLocation": "2312:9:3", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 781, + "nodeType": "ParameterList", + "parameters": [], + "src": "2321:2:3" + }, + "src": "2303:62:3", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 802, + "nodeType": "Block", + "src": "2496:89:3", + "statements": [ + { + "assignments": [ + 795 + ], + "declarations": [ + { + "constant": false, + "id": 795, + "mutability": "mutable", + "name": "$", + "nameLocation": "2529:1:3", + "nodeType": "VariableDeclaration", + "scope": 802, + "src": "2506:24:3", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$712_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + }, + "typeName": { + "id": 794, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 793, + "name": "OwnableStorage", + "nameLocations": [ + "2506:14:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 712, + "src": "2506:14:3" + }, + "referencedDeclaration": 712, + "src": "2506:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$712_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 798, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 796, + "name": "_getOwnableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 723, + "src": "2533:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$712_storage_ptr_$", + "typeString": "function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)" + } + }, + "id": 797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2533:20:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$712_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2506:47:3" + }, + { + "expression": { + "expression": { + "id": 799, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "2570:1:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$712_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "id": 800, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2572:6:3", + "memberName": "_owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 711, + "src": "2570:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 792, + "id": 801, + "nodeType": "Return", + "src": "2563:15:3" + } + ] + }, + "documentation": { + "id": 788, + "nodeType": "StructuredDocumentation", + "src": "2371:65:3", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 803, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "2450:5:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [], + "src": "2455:2:3" + }, + "returnParameters": { + "id": 792, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 803, + "src": "2487:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 790, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2487:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2486:9:3" + }, + "scope": 892, + "src": "2441:144:3", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 819, + "nodeType": "Block", + "src": "2703:117:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 807, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2717:5:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2717:7:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 809, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "2728:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2728:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2717:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 818, + "nodeType": "IfStatement", + "src": "2713:101:3", + "trueBody": { + "id": 817, + "nodeType": "Block", + "src": "2742:72:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 813, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "2790:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2790:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 812, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "2763:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2763:40:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 816, + "nodeType": "RevertStatement", + "src": "2756:47:3" + } + ] + } + } + ] + }, + "documentation": { + "id": 804, + "nodeType": "StructuredDocumentation", + "src": "2591:62:3", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 820, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "2667:11:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 805, + "nodeType": "ParameterList", + "parameters": [], + "src": "2678:2:3" + }, + "returnParameters": { + "id": 806, + "nodeType": "ParameterList", + "parameters": [], + "src": "2703:0:3" + }, + "scope": 892, + "src": "2658:162:3", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 833, + "nodeType": "Block", + "src": "3209:47:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3246:1:3", + "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": 828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3238:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 827, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3238:7:3", + "typeDescriptions": {} + } + }, + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3238:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 826, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "3219:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3219:30:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 832, + "nodeType": "ExpressionStatement", + "src": "3219:30:3" + } + ] + }, + "documentation": { + "id": 821, + "nodeType": "StructuredDocumentation", + "src": "2826:324:3", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 834, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 824, + "kind": "modifierInvocation", + "modifierName": { + "id": 823, + "name": "onlyOwner", + "nameLocations": [ + "3199:9:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 787, + "src": "3199:9:3" + }, + "nodeType": "ModifierInvocation", + "src": "3199:9:3" + } + ], + "name": "renounceOwnership", + "nameLocation": "3164:17:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 822, + "nodeType": "ParameterList", + "parameters": [], + "src": "3181:2:3" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [], + "src": "3209:0:3" + }, + "scope": 892, + "src": "3155:101:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 861, + "nodeType": "Block", + "src": "3475:145:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 842, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "3489:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3509:1:3", + "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": 844, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3501:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 843, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3501:7:3", + "typeDescriptions": {} + } + }, + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3501:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3489:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 856, + "nodeType": "IfStatement", + "src": "3485:91:3", + "trueBody": { + "id": 855, + "nodeType": "Block", + "src": "3513:63:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 851, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3562:1:3", + "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": 850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3554:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 849, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3554:7:3", + "typeDescriptions": {} + } + }, + "id": 852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3554:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 848, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "3534:19:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3534:31:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 854, + "nodeType": "RevertStatement", + "src": "3527:38:3" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 858, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "3604:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 857, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "3585:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3585:28:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 860, + "nodeType": "ExpressionStatement", + "src": "3585:28:3" + } + ] + }, + "documentation": { + "id": 835, + "nodeType": "StructuredDocumentation", + "src": "3262:138:3", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 862, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 840, + "kind": "modifierInvocation", + "modifierName": { + "id": 839, + "name": "onlyOwner", + "nameLocations": [ + "3465:9:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 787, + "src": "3465:9:3" + }, + "nodeType": "ModifierInvocation", + "src": "3465:9:3" + } + ], + "name": "transferOwnership", + "nameLocation": "3414:17:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 837, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "3440:8:3", + "nodeType": "VariableDeclaration", + "scope": 862, + "src": "3432:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3432:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3431:18:3" + }, + "returnParameters": { + "id": 841, + "nodeType": "ParameterList", + "parameters": [], + "src": "3475:0:3" + }, + "scope": 892, + "src": "3405:215:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 890, + "nodeType": "Block", + "src": "3837:185:3", + "statements": [ + { + "assignments": [ + 870 + ], + "declarations": [ + { + "constant": false, + "id": 870, + "mutability": "mutable", + "name": "$", + "nameLocation": "3870:1:3", + "nodeType": "VariableDeclaration", + "scope": 890, + "src": "3847:24:3", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$712_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + }, + "typeName": { + "id": 869, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 868, + "name": "OwnableStorage", + "nameLocations": [ + "3847:14:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 712, + "src": "3847:14:3" + }, + "referencedDeclaration": 712, + "src": "3847:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$712_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 873, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 871, + "name": "_getOwnableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 723, + "src": "3874:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$712_storage_ptr_$", + "typeString": "function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)" + } + }, + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3874:20:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$712_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3847:47:3" + }, + { + "assignments": [ + 875 + ], + "declarations": [ + { + "constant": false, + "id": 875, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "3912:8:3", + "nodeType": "VariableDeclaration", + "scope": 890, + "src": "3904:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3904:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 878, + "initialValue": { + "expression": { + "id": 876, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "3923:1:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$712_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "id": 877, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3925:6:3", + "memberName": "_owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 711, + "src": "3923:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3904:27:3" + }, + { + "expression": { + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 879, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "3941:1:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$712_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "id": 881, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3943:6:3", + "memberName": "_owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 711, + "src": "3941:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 882, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "3952:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3941:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 884, + "nodeType": "ExpressionStatement", + "src": "3941:19:3" + }, + { + "eventCall": { + "arguments": [ + { + "id": 886, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 875, + "src": "3996:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 887, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "4006:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 885, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 739, + "src": "3975:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3975:40:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 889, + "nodeType": "EmitStatement", + "src": "3970:45:3" + } + ] + }, + "documentation": { + "id": 863, + "nodeType": "StructuredDocumentation", + "src": "3626:143:3", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 891, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "3783:18:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 865, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "3810:8:3", + "nodeType": "VariableDeclaration", + "scope": 891, + "src": "3802:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3802:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3801:18:3" + }, + "returnParameters": { + "id": 867, + "nodeType": "ParameterList", + "parameters": [], + "src": "3837:0:3" + }, + "scope": 892, + "src": "3774:248:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 893, + "src": "749:3275:3", + "usedErrors": [ + 728, + 733, + 909, + 912 + ], + "usedEvents": [ + 739, + 917 + ] + } + ], + "src": "102:3923:3" + }, + "id": 3 + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "exportedSymbols": { + "Initializable": [ + 1146 + ] + }, + "id": 1147, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 894, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "113:24:4" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Initializable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 895, + "nodeType": "StructuredDocumentation", + "src": "139:2209:4", + "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ====" + }, + "fullyImplemented": true, + "id": 1146, + "linearizedBaseContracts": [ + 1146 + ], + "name": "Initializable", + "nameLocation": "2367:13:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Initializable.InitializableStorage", + "documentation": { + "id": 896, + "nodeType": "StructuredDocumentation", + "src": "2387:293:4", + "text": " @dev Storage of the initializable contract.\n It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n when using with upgradeable contracts.\n @custom:storage-location erc7201:openzeppelin.storage.Initializable" + }, + "id": 903, + "members": [ + { + "constant": false, + "id": 899, + "mutability": "mutable", + "name": "_initialized", + "nameLocation": "2820:12:4", + "nodeType": "VariableDeclaration", + "scope": 903, + "src": "2813:19:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 898, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2813:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 902, + "mutability": "mutable", + "name": "_initializing", + "nameLocation": "2955:13:4", + "nodeType": "VariableDeclaration", + "scope": 903, + "src": "2950:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 901, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2950:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "InitializableStorage", + "nameLocation": "2692:20:4", + "nodeType": "StructDefinition", + "scope": 1146, + "src": "2685:290:4", + "visibility": "public" + }, + { + "constant": true, + "id": 906, + "mutability": "constant", + "name": "INITIALIZABLE_STORAGE", + "nameLocation": "3123:21:4", + "nodeType": "VariableDeclaration", + "scope": 1146, + "src": "3098:115:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 904, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3098:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030", + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3147:66:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1", + "typeString": "int_const 1089...(70 digits omitted)...9600" + }, + "value": "0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00" + }, + "visibility": "private" + }, + { + "documentation": { + "id": 907, + "nodeType": "StructuredDocumentation", + "src": "3220:60:4", + "text": " @dev The contract is already initialized." + }, + "errorSelector": "f92ee8a9", + "id": 909, + "name": "InvalidInitialization", + "nameLocation": "3291:21:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 908, + "nodeType": "ParameterList", + "parameters": [], + "src": "3312:2:4" + }, + "src": "3285:30:4" + }, + { + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "3321:57:4", + "text": " @dev The contract is not initializing." + }, + "errorSelector": "d7e6bcf8", + "id": 912, + "name": "NotInitializing", + "nameLocation": "3389:15:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 911, + "nodeType": "ParameterList", + "parameters": [], + "src": "3404:2:4" + }, + "src": "3383:24:4" + }, + { + "anonymous": false, + "documentation": { + "id": 913, + "nodeType": "StructuredDocumentation", + "src": "3413:90:4", + "text": " @dev Triggered when the contract has been initialized or reinitialized." + }, + "eventSelector": "c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2", + "id": 917, + "name": "Initialized", + "nameLocation": "3514:11:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 915, + "indexed": false, + "mutability": "mutable", + "name": "version", + "nameLocation": "3533:7:4", + "nodeType": "VariableDeclaration", + "scope": 917, + "src": "3526:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 914, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3526:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3525:16:4" + }, + "src": "3508:34:4" + }, + { + "body": { + "id": 999, + "nodeType": "Block", + "src": "4092:1081:4", + "statements": [ + { + "assignments": [ + 922 + ], + "declarations": [ + { + "constant": false, + "id": 922, + "mutability": "mutable", + "name": "$", + "nameLocation": "4187:1:4", + "nodeType": "VariableDeclaration", + "scope": 999, + "src": "4158:30:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 921, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 920, + "name": "InitializableStorage", + "nameLocations": [ + "4158:20:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 903, + "src": "4158:20:4" + }, + "referencedDeclaration": 903, + "src": "4158:20:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 925, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 923, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "4191:24:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$903_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4191:26:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4158:59:4" + }, + { + "assignments": [ + 927 + ], + "declarations": [ + { + "constant": false, + "id": 927, + "mutability": "mutable", + "name": "isTopLevelCall", + "nameLocation": "4284:14:4", + "nodeType": "VariableDeclaration", + "scope": 999, + "src": "4279:19:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 926, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4279:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 931, + "initialValue": { + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4301:16:4", + "subExpression": { + "expression": { + "id": 928, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 922, + "src": "4302:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 929, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4304:13:4", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 902, + "src": "4302:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4279:38:4" + }, + { + "assignments": [ + 933 + ], + "declarations": [ + { + "constant": false, + "id": 933, + "mutability": "mutable", + "name": "initialized", + "nameLocation": "4334:11:4", + "nodeType": "VariableDeclaration", + "scope": 999, + "src": "4327:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 932, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4327:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 936, + "initialValue": { + "expression": { + "id": 934, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 922, + "src": "4348:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 935, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4350:12:4", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 899, + "src": "4348:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4327:35:4" + }, + { + "assignments": [ + 938 + ], + "declarations": [ + { + "constant": false, + "id": 938, + "mutability": "mutable", + "name": "initialSetup", + "nameLocation": "4711:12:4", + "nodeType": "VariableDeclaration", + "scope": 999, + "src": "4706:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 937, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4706:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 944, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 939, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 933, + "src": "4726:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 940, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4741:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4726:16:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 942, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "4746:14:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4726:34:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4706:54:4" + }, + { + "assignments": [ + 946 + ], + "declarations": [ + { + "constant": false, + "id": 946, + "mutability": "mutable", + "name": "construction", + "nameLocation": "4775:12:4", + "nodeType": "VariableDeclaration", + "scope": 999, + "src": "4770:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4770:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 959, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 947, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 933, + "src": "4790:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 948, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4805:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4790:16:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "arguments": [ + { + "id": 952, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4818:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$1146", + "typeString": "contract Initializable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Initializable_$1146", + "typeString": "contract Initializable" + } + ], + "id": 951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4810:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4810:7:4", + "typeDescriptions": {} + } + }, + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4810:13:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4824:4:4", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "4810:18:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4829:6:4", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4810:25:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4839:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4810:30:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4790:50:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4770:70:4" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4855:13:4", + "subExpression": { + "id": 960, + "name": "initialSetup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "4856:12:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4872:13:4", + "subExpression": { + "id": 962, + "name": "construction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "4873:12:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4855:30:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 969, + "nodeType": "IfStatement", + "src": "4851:91:4", + "trueBody": { + "id": 968, + "nodeType": "Block", + "src": "4887:55:4", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 965, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "4908:21:4", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4908:23:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 967, + "nodeType": "RevertStatement", + "src": "4901:30:4" + } + ] + } + }, + { + "expression": { + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 970, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 922, + "src": "4951:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4953:12:4", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 899, + "src": "4951:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4968:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4951:18:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 975, + "nodeType": "ExpressionStatement", + "src": "4951:18:4" + }, + { + "condition": { + "id": 976, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "4983:14:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 984, + "nodeType": "IfStatement", + "src": "4979:67:4", + "trueBody": { + "id": 983, + "nodeType": "Block", + "src": "4999:47:4", + "statements": [ + { + "expression": { + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 977, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 922, + "src": "5013:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 979, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5015:13:4", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 902, + "src": "5013:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 980, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5031:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5013:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 982, + "nodeType": "ExpressionStatement", + "src": "5013:22:4" + } + ] + } + }, + { + "id": 985, + "nodeType": "PlaceholderStatement", + "src": "5055:1:4" + }, + { + "condition": { + "id": 986, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "5070:14:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 998, + "nodeType": "IfStatement", + "src": "5066:101:4", + "trueBody": { + "id": 997, + "nodeType": "Block", + "src": "5086:81:4", + "statements": [ + { + "expression": { + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 987, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 922, + "src": "5100:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5102:13:4", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 902, + "src": "5100:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5118:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "5100:23:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 992, + "nodeType": "ExpressionStatement", + "src": "5100:23:4" + }, + { + "eventCall": { + "arguments": [ + { + "hexValue": "31", + "id": 994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5154:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 993, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "5142:11:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5142:14:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 996, + "nodeType": "EmitStatement", + "src": "5137:19:4" + } + ] + } + } + ] + }, + "documentation": { + "id": 918, + "nodeType": "StructuredDocumentation", + "src": "3548:516:4", + "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n production.\n Emits an {Initialized} event." + }, + "id": 1000, + "name": "initializer", + "nameLocation": "4078:11:4", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 919, + "nodeType": "ParameterList", + "parameters": [], + "src": "4089:2:4" + }, + "src": "4069:1104:4", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1046, + "nodeType": "Block", + "src": "6291:392:4", + "statements": [ + { + "assignments": [ + 1007 + ], + "declarations": [ + { + "constant": false, + "id": 1007, + "mutability": "mutable", + "name": "$", + "nameLocation": "6386:1:4", + "nodeType": "VariableDeclaration", + "scope": 1046, + "src": "6357:30:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 1006, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1005, + "name": "InitializableStorage", + "nameLocations": [ + "6357:20:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 903, + "src": "6357:20:4" + }, + "referencedDeclaration": 903, + "src": "6357:20:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 1010, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1008, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "6390:24:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$903_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6390:26:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6357:59:4" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1011, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1007, + "src": "6431:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 1012, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6433:13:4", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 902, + "src": "6431:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 1016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1013, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1007, + "src": "6450:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 1014, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6452:12:4", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 899, + "src": "6450:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1015, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1003, + "src": "6468:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6450:25:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6431:44:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1022, + "nodeType": "IfStatement", + "src": "6427:105:4", + "trueBody": { + "id": 1021, + "nodeType": "Block", + "src": "6477:55:4", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1018, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "6498:21:4", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 1019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6498:23:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1020, + "nodeType": "RevertStatement", + "src": "6491:30:4" + } + ] + } + }, + { + "expression": { + "id": 1027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 1023, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1007, + "src": "6541:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 1025, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6543:12:4", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 899, + "src": "6541:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1026, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1003, + "src": "6558:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6541:24:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 1028, + "nodeType": "ExpressionStatement", + "src": "6541:24:4" + }, + { + "expression": { + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 1029, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1007, + "src": "6575:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 1031, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6577:13:4", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 902, + "src": "6575:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6593:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6575:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "6575:22:4" + }, + { + "id": 1035, + "nodeType": "PlaceholderStatement", + "src": "6607:1:4" + }, + { + "expression": { + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 1036, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1007, + "src": "6618:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 1038, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6620:13:4", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 902, + "src": "6618:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6636:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "6618:23:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1041, + "nodeType": "ExpressionStatement", + "src": "6618:23:4" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1043, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1003, + "src": "6668:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 1042, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "6656:11:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6656:20:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1045, + "nodeType": "EmitStatement", + "src": "6651:25:4" + } + ] + }, + "documentation": { + "id": 1001, + "nodeType": "StructuredDocumentation", + "src": "5179:1068:4", + "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n Emits an {Initialized} event." + }, + "id": 1047, + "name": "reinitializer", + "nameLocation": "6261:13:4", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1003, + "mutability": "mutable", + "name": "version", + "nameLocation": "6282:7:4", + "nodeType": "VariableDeclaration", + "scope": 1047, + "src": "6275:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1002, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "6275:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "6274:16:4" + }, + "src": "6252:431:4", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1054, + "nodeType": "Block", + "src": "6921:48:4", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1050, + "name": "_checkInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1068, + "src": "6931:18:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 1051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6931:20:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1052, + "nodeType": "ExpressionStatement", + "src": "6931:20:4" + }, + { + "id": 1053, + "nodeType": "PlaceholderStatement", + "src": "6961:1:4" + } + ] + }, + "documentation": { + "id": 1048, + "nodeType": "StructuredDocumentation", + "src": "6689:199:4", + "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly." + }, + "id": 1055, + "name": "onlyInitializing", + "nameLocation": "6902:16:4", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [], + "src": "6918:2:4" + }, + "src": "6893:76:4", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1067, + "nodeType": "Block", + "src": "7136:89:4", + "statements": [ + { + "condition": { + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7150:18:4", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1059, + "name": "_isInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "7151:15:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7151:17:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1066, + "nodeType": "IfStatement", + "src": "7146:73:4", + "trueBody": { + "id": 1065, + "nodeType": "Block", + "src": "7170:49:4", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1062, + "name": "NotInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "7191:15:4", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 1063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7191:17:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1064, + "nodeType": "RevertStatement", + "src": "7184:24:4" + } + ] + } + } + ] + }, + "documentation": { + "id": 1056, + "nodeType": "StructuredDocumentation", + "src": "6975:104:4", + "text": " @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}." + }, + "id": 1068, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkInitializing", + "nameLocation": "7093:18:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1057, + "nodeType": "ParameterList", + "parameters": [], + "src": "7111:2:4" + }, + "returnParameters": { + "id": 1058, + "nodeType": "ParameterList", + "parameters": [], + "src": "7136:0:4" + }, + "scope": 1146, + "src": "7084:141:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1113, + "nodeType": "Block", + "src": "7760:373:4", + "statements": [ + { + "assignments": [ + 1074 + ], + "declarations": [ + { + "constant": false, + "id": 1074, + "mutability": "mutable", + "name": "$", + "nameLocation": "7855:1:4", + "nodeType": "VariableDeclaration", + "scope": 1113, + "src": "7826:30:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 1073, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1072, + "name": "InitializableStorage", + "nameLocations": [ + "7826:20:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 903, + "src": "7826:20:4" + }, + "referencedDeclaration": 903, + "src": "7826:20:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 1077, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1075, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "7859:24:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$903_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7859:26:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7826:59:4" + }, + { + "condition": { + "expression": { + "id": 1078, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1074, + "src": "7900:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7902:13:4", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 902, + "src": "7900:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1084, + "nodeType": "IfStatement", + "src": "7896:76:4", + "trueBody": { + "id": 1083, + "nodeType": "Block", + "src": "7917:55:4", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1080, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "7938:21:4", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7938:23:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1082, + "nodeType": "RevertStatement", + "src": "7931:30:4" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1085, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1074, + "src": "7985:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 1086, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7987:12:4", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 899, + "src": "7985:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8008:6:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 1088, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8008:6:4", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 1087, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8003:4:4", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8003:12:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8016:3:4", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8003:16:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "7985:34:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1112, + "nodeType": "IfStatement", + "src": "7981:146:4", + "trueBody": { + "id": 1111, + "nodeType": "Block", + "src": "8021:106:4", + "statements": [ + { + "expression": { + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 1093, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1074, + "src": "8035:1:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 1095, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8037:12:4", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 899, + "src": "8035:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "arguments": [ + { + "id": 1098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8057:6:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 1097, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8057:6:4", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 1096, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8052:4:4", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8052:12:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8065:3:4", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8052:16:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "8035:33:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 1102, + "nodeType": "ExpressionStatement", + "src": "8035:33:4" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8104:6:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 1105, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8104:6:4", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 1104, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8099:4:4", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8099:12:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 1108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8112:3:4", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8099:16:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 1103, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "8087:11:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8087:29:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1110, + "nodeType": "EmitStatement", + "src": "8082:34:4" + } + ] + } + } + ] + }, + "documentation": { + "id": 1069, + "nodeType": "StructuredDocumentation", + "src": "7231:475:4", + "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed." + }, + "id": 1114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_disableInitializers", + "nameLocation": "7720:20:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [], + "src": "7740:2:4" + }, + "returnParameters": { + "id": 1071, + "nodeType": "ParameterList", + "parameters": [], + "src": "7760:0:4" + }, + "scope": 1146, + "src": "7711:422:4", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1124, + "nodeType": "Block", + "src": "8308:63:4", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1120, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "8325:24:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$903_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8325:26:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 1122, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8352:12:4", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 899, + "src": "8325:39:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 1119, + "id": 1123, + "nodeType": "Return", + "src": "8318:46:4" + } + ] + }, + "documentation": { + "id": 1115, + "nodeType": "StructuredDocumentation", + "src": "8139:99:4", + "text": " @dev Returns the highest version that has been initialized. See {reinitializer}." + }, + "id": 1125, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getInitializedVersion", + "nameLocation": "8252:22:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1116, + "nodeType": "ParameterList", + "parameters": [], + "src": "8274:2:4" + }, + "returnParameters": { + "id": 1119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1118, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1125, + "src": "8300:6:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1117, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8300:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "8299:8:4" + }, + "scope": 1146, + "src": "8243:128:4", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1135, + "nodeType": "Block", + "src": "8543:64:4", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1131, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "8560:24:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$903_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 1132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8560:26:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 1133, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8587:13:4", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 902, + "src": "8560:40:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1130, + "id": 1134, + "nodeType": "Return", + "src": "8553:47:4" + } + ] + }, + "documentation": { + "id": 1126, + "nodeType": "StructuredDocumentation", + "src": "8377:105:4", + "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}." + }, + "id": 1136, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isInitializing", + "nameLocation": "8496:15:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1127, + "nodeType": "ParameterList", + "parameters": [], + "src": "8511:2:4" + }, + "returnParameters": { + "id": 1130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1129, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1136, + "src": "8537:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1128, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8537:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8536:6:4" + }, + "scope": 1146, + "src": "8487:120:4", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1144, + "nodeType": "Block", + "src": "8827:80:4", + "statements": [ + { + "AST": { + "nativeSrc": "8846:55:4", + "nodeType": "YulBlock", + "src": "8846:55:4", + "statements": [ + { + "nativeSrc": "8860:31:4", + "nodeType": "YulAssignment", + "src": "8860:31:4", + "value": { + "name": "INITIALIZABLE_STORAGE", + "nativeSrc": "8870:21:4", + "nodeType": "YulIdentifier", + "src": "8870:21:4" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "8860:6:4", + "nodeType": "YulIdentifier", + "src": "8860:6:4" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1141, + "isOffset": false, + "isSlot": true, + "src": "8860:6:4", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 906, + "isOffset": false, + "isSlot": false, + "src": "8870:21:4", + "valueSize": 1 + } + ], + "id": 1143, + "nodeType": "InlineAssembly", + "src": "8837:64:4" + } + ] + }, + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "8613:67:4", + "text": " @dev Returns a pointer to the storage namespace." + }, + "id": 1145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getInitializableStorage", + "nameLocation": "8746:24:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1138, + "nodeType": "ParameterList", + "parameters": [], + "src": "8770:2:4" + }, + "returnParameters": { + "id": 1142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1141, + "mutability": "mutable", + "name": "$", + "nameLocation": "8824:1:4", + "nodeType": "VariableDeclaration", + "scope": 1145, + "src": "8795:30:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 1140, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1139, + "name": "InitializableStorage", + "nameLocations": [ + "8795:20:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 903, + "src": "8795:20:4" + }, + "referencedDeclaration": 903, + "src": "8795:20:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$903_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "src": "8794:32:4" + }, + "scope": 1146, + "src": "8737:170:4", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1147, + "src": "2349:6560:4", + "usedErrors": [ + 909, + 912 + ], + "usedEvents": [ + 917 + ] + } + ], + "src": "113:8797:4" + }, + "id": 4 + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "exportedSymbols": { + "ContextUpgradeable": [ + 1192 + ], + "Initializable": [ + 1146 + ] + }, + "id": 1193, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1148, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:5" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 1150, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1193, + "sourceUnit": 1147, + "src": "126:63:5", + "symbolAliases": [ + { + "foreign": { + "id": 1149, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "134:13:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1152, + "name": "Initializable", + "nameLocations": [ + "728:13:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1146, + "src": "728:13:5" + }, + "id": 1153, + "nodeType": "InheritanceSpecifier", + "src": "728:13:5" + } + ], + "canonicalName": "ContextUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1151, + "nodeType": "StructuredDocumentation", + "src": "191:496:5", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 1192, + "linearizedBaseContracts": [ + 1192, + 1146 + ], + "name": "ContextUpgradeable", + "nameLocation": "706:18:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1158, + "nodeType": "Block", + "src": "800:7:5", + "statements": [] + }, + "id": 1159, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1156, + "kind": "modifierInvocation", + "modifierName": { + "id": 1155, + "name": "onlyInitializing", + "nameLocations": [ + "783:16:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1055, + "src": "783:16:5" + }, + "nodeType": "ModifierInvocation", + "src": "783:16:5" + } + ], + "name": "__Context_init", + "nameLocation": "757:14:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1154, + "nodeType": "ParameterList", + "parameters": [], + "src": "771:2:5" + }, + "returnParameters": { + "id": 1157, + "nodeType": "ParameterList", + "parameters": [], + "src": "800:0:5" + }, + "scope": 1192, + "src": "748:59:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1164, + "nodeType": "Block", + "src": "875:7:5", + "statements": [] + }, + "id": 1165, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1162, + "kind": "modifierInvocation", + "modifierName": { + "id": 1161, + "name": "onlyInitializing", + "nameLocations": [ + "858:16:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1055, + "src": "858:16:5" + }, + "nodeType": "ModifierInvocation", + "src": "858:16:5" + } + ], + "name": "__Context_init_unchained", + "nameLocation": "822:24:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [], + "src": "846:2:5" + }, + "returnParameters": { + "id": 1163, + "nodeType": "ParameterList", + "parameters": [], + "src": "875:0:5" + }, + "scope": 1192, + "src": "813:69:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1173, + "nodeType": "Block", + "src": "949:34:5", + "statements": [ + { + "expression": { + "expression": { + "id": 1170, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "966:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "970:6:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "966:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1169, + "id": 1172, + "nodeType": "Return", + "src": "959:17:5" + } + ] + }, + "id": 1174, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "896:10:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1166, + "nodeType": "ParameterList", + "parameters": [], + "src": "906:2:5" + }, + "returnParameters": { + "id": 1169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1168, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1174, + "src": "940:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "940:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "939:9:5" + }, + "scope": 1192, + "src": "887:96:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1182, + "nodeType": "Block", + "src": "1056:32:5", + "statements": [ + { + "expression": { + "expression": { + "id": 1179, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1073:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1077:4:5", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "1073:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 1178, + "id": 1181, + "nodeType": "Return", + "src": "1066:15:5" + } + ] + }, + "id": 1183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "998:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1175, + "nodeType": "ParameterList", + "parameters": [], + "src": "1006:2:5" + }, + "returnParameters": { + "id": 1178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1177, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1183, + "src": "1040:14:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1176, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1040:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1039:16:5" + }, + "scope": 1192, + "src": "989:99:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1190, + "nodeType": "Block", + "src": "1166:25:5", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 1188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1183:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1187, + "id": 1189, + "nodeType": "Return", + "src": "1176:8:5" + } + ] + }, + "id": 1191, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "1103:20:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1184, + "nodeType": "ParameterList", + "parameters": [], + "src": "1123:2:5" + }, + "returnParameters": { + "id": 1187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1186, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1191, + "src": "1157:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1185, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1157:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1156:9:5" + }, + "scope": 1192, + "src": "1094:97:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1193, + "src": "688:505:5", + "usedErrors": [ + 909, + 912 + ], + "usedEvents": [ + 917 + ] + } + ], + "src": "101:1093:5" + }, + "id": 5 + }, + "@openzeppelin/contracts/access/AccessControl.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "exportedSymbols": { + "AccessControl": [ + 1488 + ], + "Context": [ + 3419 + ], + "ERC165": [ + 3670 + ], + "IAccessControl": [ + 1571 + ] + }, + "id": 1489, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1194, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "108:24:6" + }, + { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "file": "./IAccessControl.sol", + "id": 1196, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1489, + "sourceUnit": 1572, + "src": "134:52:6", + "symbolAliases": [ + { + "foreign": { + "id": 1195, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1571, + "src": "142:14:6", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 1198, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1489, + "sourceUnit": 3420, + "src": "187:45:6", + "symbolAliases": [ + { + "foreign": { + "id": 1197, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3419, + "src": "195:7:6", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../utils/introspection/ERC165.sol", + "id": 1200, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1489, + "sourceUnit": 3671, + "src": "233:57:6", + "symbolAliases": [ + { + "foreign": { + "id": 1199, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3670, + "src": "241:6:6", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1202, + "name": "Context", + "nameLocations": [ + "1988:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3419, + "src": "1988:7:6" + }, + "id": 1203, + "nodeType": "InheritanceSpecifier", + "src": "1988:7:6" + }, + { + "baseName": { + "id": 1204, + "name": "IAccessControl", + "nameLocations": [ + "1997:14:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1571, + "src": "1997:14:6" + }, + "id": 1205, + "nodeType": "InheritanceSpecifier", + "src": "1997:14:6" + }, + { + "baseName": { + "id": 1206, + "name": "ERC165", + "nameLocations": [ + "2013:6:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3670, + "src": "2013:6:6" + }, + "id": 1207, + "nodeType": "InheritanceSpecifier", + "src": "2013:6:6" + } + ], + "canonicalName": "AccessControl", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1201, + "nodeType": "StructuredDocumentation", + "src": "292:1660:6", + "text": " @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role." + }, + "fullyImplemented": true, + "id": 1488, + "linearizedBaseContracts": [ + 1488, + 3670, + 3682, + 1571, + 3419 + ], + "name": "AccessControl", + "nameLocation": "1971:13:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "AccessControl.RoleData", + "id": 1214, + "members": [ + { + "constant": false, + "id": 1211, + "mutability": "mutable", + "name": "hasRole", + "nameLocation": "2085:7:6", + "nodeType": "VariableDeclaration", + "scope": 1214, + "src": "2052:40:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 1210, + "keyName": "account", + "keyNameLocation": "2068:7:6", + "keyType": { + "id": 1208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2060:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2052:32:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1209, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2079:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1213, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "2110:9:6", + "nodeType": "VariableDeclaration", + "scope": 1214, + "src": "2102:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1212, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2102:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "RoleData", + "nameLocation": "2033:8:6", + "nodeType": "StructDefinition", + "scope": 1488, + "src": "2026:100:6", + "visibility": "public" + }, + { + "constant": false, + "id": 1219, + "mutability": "mutable", + "name": "_roles", + "nameLocation": "2174:6:6", + "nodeType": "VariableDeclaration", + "scope": 1488, + "src": "2132:48:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" + }, + "typeName": { + "id": 1218, + "keyName": "role", + "keyNameLocation": "2148:4:6", + "keyType": { + "id": 1215, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2140:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "2132:33:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1217, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1216, + "name": "RoleData", + "nameLocations": [ + "2156:8:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1214, + "src": "2156:8:6" + }, + "referencedDeclaration": 1214, + "src": "2156:8:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$1214_storage_ptr", + "typeString": "struct AccessControl.RoleData" + } + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "a217fddf", + "id": 1222, + "mutability": "constant", + "name": "DEFAULT_ADMIN_ROLE", + "nameLocation": "2211:18:6", + "nodeType": "VariableDeclaration", + "scope": 1488, + "src": "2187:49:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2187:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "30783030", + "id": 1221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2232:4:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x00" + }, + "visibility": "public" + }, + { + "body": { + "id": 1232, + "nodeType": "Block", + "src": "2454:44:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1228, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "2475:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1227, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1286, + 1307 + ], + "referencedDeclaration": 1286, + "src": "2464:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) view" + } + }, + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2464:16:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1230, + "nodeType": "ExpressionStatement", + "src": "2464:16:6" + }, + { + "id": 1231, + "nodeType": "PlaceholderStatement", + "src": "2490:1:6" + } + ] + }, + "documentation": { + "id": 1223, + "nodeType": "StructuredDocumentation", + "src": "2243:174:6", + "text": " @dev Modifier that checks that an account has a specific role. Reverts\n with an {AccessControlUnauthorizedAccount} error including the required role." + }, + "id": 1233, + "name": "onlyRole", + "nameLocation": "2431:8:6", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1225, + "mutability": "mutable", + "name": "role", + "nameLocation": "2448:4:6", + "nodeType": "VariableDeclaration", + "scope": 1233, + "src": "2440:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1224, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2440:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2439:14:6" + }, + "src": "2422:76:6", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3669 + ], + "body": { + "id": 1254, + "nodeType": "Block", + "src": "2656:111:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1242, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1236, + "src": "2673:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1244, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1571, + "src": "2693:14:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAccessControl_$1571_$", + "typeString": "type(contract IAccessControl)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IAccessControl_$1571_$", + "typeString": "type(contract IAccessControl)" + } + ], + "id": 1243, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2688:4:6", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2688:20:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControl_$1571", + "typeString": "type(contract IAccessControl)" + } + }, + "id": 1246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2709:11:6", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "2688:32:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "2673:47:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1250, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1236, + "src": "2748:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 1248, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2724:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControl_$1488_$", + "typeString": "type(contract super AccessControl)" + } + }, + "id": 1249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2730:17:6", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 3669, + "src": "2724:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 1251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2724:36:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2673:87:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1241, + "id": 1253, + "nodeType": "Return", + "src": "2666:94:6" + } + ] + }, + "documentation": { + "id": 1234, + "nodeType": "StructuredDocumentation", + "src": "2504:56:6", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 1255, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2574:17:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1238, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2632:8:6" + }, + "parameters": { + "id": 1237, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1236, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "2599:11:6", + "nodeType": "VariableDeclaration", + "scope": 1255, + "src": "2592:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1235, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2592:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2591:20:6" + }, + "returnParameters": { + "id": 1241, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1240, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1255, + "src": "2650:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1239, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2650:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2649:6:6" + }, + "scope": 1488, + "src": "2565:202:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1538 + ], + "body": { + "id": 1272, + "nodeType": "Block", + "src": "2937:53:6", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 1265, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "2954:6:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 1267, + "indexExpression": { + "id": 1266, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1258, + "src": "2961:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2954:12:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$1214_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2967:7:6", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 1211, + "src": "2954:20:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1270, + "indexExpression": { + "id": 1269, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "2975:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2954:29:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1264, + "id": 1271, + "nodeType": "Return", + "src": "2947:36:6" + } + ] + }, + "documentation": { + "id": 1256, + "nodeType": "StructuredDocumentation", + "src": "2773:76:6", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 1273, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "2863:7:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1261, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1258, + "mutability": "mutable", + "name": "role", + "nameLocation": "2879:4:6", + "nodeType": "VariableDeclaration", + "scope": 1273, + "src": "2871:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1257, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2871:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1260, + "mutability": "mutable", + "name": "account", + "nameLocation": "2893:7:6", + "nodeType": "VariableDeclaration", + "scope": 1273, + "src": "2885:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1259, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2885:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2870:31:6" + }, + "returnParameters": { + "id": 1264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1263, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1273, + "src": "2931:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1262, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2931:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2930:6:6" + }, + "scope": 1488, + "src": "2854:136:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1285, + "nodeType": "Block", + "src": "3255:47:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1280, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1276, + "src": "3276:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1281, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "3282:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3282:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1279, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1286, + 1307 + ], + "referencedDeclaration": 1307, + "src": "3265:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address) view" + } + }, + "id": 1283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3265:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1284, + "nodeType": "ExpressionStatement", + "src": "3265:30:6" + } + ] + }, + "documentation": { + "id": 1274, + "nodeType": "StructuredDocumentation", + "src": "2996:198:6", + "text": " @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier." + }, + "id": 1286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkRole", + "nameLocation": "3208:10:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1276, + "mutability": "mutable", + "name": "role", + "nameLocation": "3227:4:6", + "nodeType": "VariableDeclaration", + "scope": 1286, + "src": "3219:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3219:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3218:14:6" + }, + "returnParameters": { + "id": 1278, + "nodeType": "ParameterList", + "parameters": [], + "src": "3255:0:6" + }, + "scope": 1488, + "src": "3199:103:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1306, + "nodeType": "Block", + "src": "3505:124:6", + "statements": [ + { + "condition": { + "id": 1298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3519:23:6", + "subExpression": { + "arguments": [ + { + "id": 1295, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1289, + "src": "3528:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1296, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1291, + "src": "3534:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1294, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1273, + "src": "3520:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 1297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3520:22:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1305, + "nodeType": "IfStatement", + "src": "3515:108:6", + "trueBody": { + "id": 1304, + "nodeType": "Block", + "src": "3544:79:6", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1300, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1291, + "src": "3598:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1301, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1289, + "src": "3607:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1299, + "name": "AccessControlUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1498, + "src": "3565:32:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$", + "typeString": "function (address,bytes32) pure returns (error)" + } + }, + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3565:47:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1303, + "nodeType": "RevertStatement", + "src": "3558:54:6" + } + ] + } + } + ] + }, + "documentation": { + "id": 1287, + "nodeType": "StructuredDocumentation", + "src": "3308:119:6", + "text": " @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n is missing `role`." + }, + "id": 1307, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkRole", + "nameLocation": "3441:10:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1289, + "mutability": "mutable", + "name": "role", + "nameLocation": "3460:4:6", + "nodeType": "VariableDeclaration", + "scope": 1307, + "src": "3452:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1288, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3452:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1291, + "mutability": "mutable", + "name": "account", + "nameLocation": "3474:7:6", + "nodeType": "VariableDeclaration", + "scope": 1307, + "src": "3466:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1290, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3466:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3451:31:6" + }, + "returnParameters": { + "id": 1293, + "nodeType": "ParameterList", + "parameters": [], + "src": "3505:0:6" + }, + "scope": 1488, + "src": "3432:197:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1546 + ], + "body": { + "id": 1320, + "nodeType": "Block", + "src": "3884:46:6", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 1315, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "3901:6:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 1317, + "indexExpression": { + "id": 1316, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1310, + "src": "3908:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3901:12:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$1214_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 1318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3914:9:6", + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 1213, + "src": "3901:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1314, + "id": 1319, + "nodeType": "Return", + "src": "3894:29:6" + } + ] + }, + "documentation": { + "id": 1308, + "nodeType": "StructuredDocumentation", + "src": "3635:170:6", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 1321, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nameLocation": "3819:12:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1310, + "mutability": "mutable", + "name": "role", + "nameLocation": "3840:4:6", + "nodeType": "VariableDeclaration", + "scope": 1321, + "src": "3832:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1309, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3832:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3831:14:6" + }, + "returnParameters": { + "id": 1314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1313, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1321, + "src": "3875:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1312, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3875:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3874:9:6" + }, + "scope": 1488, + "src": "3810:120:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1554 + ], + "body": { + "id": 1339, + "nodeType": "Block", + "src": "4320:42:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1335, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "4341:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1336, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1326, + "src": "4347:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1334, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1449, + "src": "4330:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 1337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4330:25:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1338, + "nodeType": "ExpressionStatement", + "src": "4330:25:6" + } + ] + }, + "documentation": { + "id": 1322, + "nodeType": "StructuredDocumentation", + "src": "3936:285:6", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event." + }, + "functionSelector": "2f2ff15d", + "id": 1340, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1330, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "4313:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1329, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "4300:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 1331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4300:18:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 1332, + "kind": "modifierInvocation", + "modifierName": { + "id": 1328, + "name": "onlyRole", + "nameLocations": [ + "4291:8:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1233, + "src": "4291:8:6" + }, + "nodeType": "ModifierInvocation", + "src": "4291:28:6" + } + ], + "name": "grantRole", + "nameLocation": "4235:9:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1327, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1324, + "mutability": "mutable", + "name": "role", + "nameLocation": "4253:4:6", + "nodeType": "VariableDeclaration", + "scope": 1340, + "src": "4245:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1323, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4245:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1326, + "mutability": "mutable", + "name": "account", + "nameLocation": "4267:7:6", + "nodeType": "VariableDeclaration", + "scope": 1340, + "src": "4259:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4259:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4244:31:6" + }, + "returnParameters": { + "id": 1333, + "nodeType": "ParameterList", + "parameters": [], + "src": "4320:0:6" + }, + "scope": 1488, + "src": "4226:136:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1562 + ], + "body": { + "id": 1358, + "nodeType": "Block", + "src": "4737:43:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1354, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "4759:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1355, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1345, + "src": "4765:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1353, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1487, + "src": "4747:11:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 1356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4747:26:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1357, + "nodeType": "ExpressionStatement", + "src": "4747:26:6" + } + ] + }, + "documentation": { + "id": 1341, + "nodeType": "StructuredDocumentation", + "src": "4368:269:6", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event." + }, + "functionSelector": "d547741f", + "id": 1359, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1349, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "4730:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1348, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "4717:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 1350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4717:18:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 1351, + "kind": "modifierInvocation", + "modifierName": { + "id": 1347, + "name": "onlyRole", + "nameLocations": [ + "4708:8:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1233, + "src": "4708:8:6" + }, + "nodeType": "ModifierInvocation", + "src": "4708:28:6" + } + ], + "name": "revokeRole", + "nameLocation": "4651:10:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1343, + "mutability": "mutable", + "name": "role", + "nameLocation": "4670:4:6", + "nodeType": "VariableDeclaration", + "scope": 1359, + "src": "4662:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1342, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4662:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1345, + "mutability": "mutable", + "name": "account", + "nameLocation": "4684:7:6", + "nodeType": "VariableDeclaration", + "scope": 1359, + "src": "4676:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4676:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4661:31:6" + }, + "returnParameters": { + "id": 1352, + "nodeType": "ParameterList", + "parameters": [], + "src": "4737:0:6" + }, + "scope": 1488, + "src": "4642:138:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1570 + ], + "body": { + "id": 1381, + "nodeType": "Block", + "src": "5407:166:6", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1367, + "name": "callerConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1364, + "src": "5421:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1368, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "5443:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5443:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5421:34:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1375, + "nodeType": "IfStatement", + "src": "5417:102:6", + "trueBody": { + "id": 1374, + "nodeType": "Block", + "src": "5457:62:6", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1371, + "name": "AccessControlBadConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1501, + "src": "5478:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 1372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5478:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1373, + "nodeType": "RevertStatement", + "src": "5471:37:6" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1377, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5541:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1378, + "name": "callerConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1364, + "src": "5547:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1376, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1487, + "src": "5529:11:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5529:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1380, + "nodeType": "ExpressionStatement", + "src": "5529:37:6" + } + ] + }, + "documentation": { + "id": 1360, + "nodeType": "StructuredDocumentation", + "src": "4786:537:6", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`.\n May emit a {RoleRevoked} event." + }, + "functionSelector": "36568abe", + "id": 1382, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "5337:12:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "role", + "nameLocation": "5358:4:6", + "nodeType": "VariableDeclaration", + "scope": 1382, + "src": "5350:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1361, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5350:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1364, + "mutability": "mutable", + "name": "callerConfirmation", + "nameLocation": "5372:18:6", + "nodeType": "VariableDeclaration", + "scope": 1382, + "src": "5364:26:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5349:42:6" + }, + "returnParameters": { + "id": 1366, + "nodeType": "ParameterList", + "parameters": [], + "src": "5407:0:6" + }, + "scope": 1488, + "src": "5328:245:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1409, + "nodeType": "Block", + "src": "5771:174:6", + "statements": [ + { + "assignments": [ + 1391 + ], + "declarations": [ + { + "constant": false, + "id": 1391, + "mutability": "mutable", + "name": "previousAdminRole", + "nameLocation": "5789:17:6", + "nodeType": "VariableDeclaration", + "scope": 1409, + "src": "5781:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1390, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5781:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1395, + "initialValue": { + "arguments": [ + { + "id": 1393, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1385, + "src": "5822:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1392, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "5809:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 1394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5809:18:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5781:46:6" + }, + { + "expression": { + "id": 1401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 1396, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "5837:6:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 1398, + "indexExpression": { + "id": 1397, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1385, + "src": "5844:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5837:12:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$1214_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 1399, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5850:9:6", + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 1213, + "src": "5837:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1400, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1387, + "src": "5862:9:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5837:34:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1402, + "nodeType": "ExpressionStatement", + "src": "5837:34:6" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1404, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1385, + "src": "5903:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1405, + "name": "previousAdminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1391, + "src": "5909:17:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1406, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1387, + "src": "5928:9:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1403, + "name": "RoleAdminChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1510, + "src": "5886:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32,bytes32)" + } + }, + "id": 1407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5886:52:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1408, + "nodeType": "EmitStatement", + "src": "5881:57:6" + } + ] + }, + "documentation": { + "id": 1383, + "nodeType": "StructuredDocumentation", + "src": "5579:114:6", + "text": " @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event." + }, + "id": 1410, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setRoleAdmin", + "nameLocation": "5707:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1385, + "mutability": "mutable", + "name": "role", + "nameLocation": "5729:4:6", + "nodeType": "VariableDeclaration", + "scope": 1410, + "src": "5721:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1384, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5721:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1387, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "5743:9:6", + "nodeType": "VariableDeclaration", + "scope": 1410, + "src": "5735:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1386, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5735:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5720:33:6" + }, + "returnParameters": { + "id": 1389, + "nodeType": "ParameterList", + "parameters": [], + "src": "5771:0:6" + }, + "scope": 1488, + "src": "5698:247:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1448, + "nodeType": "Block", + "src": "6262:233:6", + "statements": [ + { + "condition": { + "id": 1424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "6276:23:6", + "subExpression": { + "arguments": [ + { + "id": 1421, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1413, + "src": "6285:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1422, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "6291:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1420, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1273, + "src": "6277:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 1423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6277:22:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1446, + "nodeType": "Block", + "src": "6452:37:6", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6473:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1419, + "id": 1445, + "nodeType": "Return", + "src": "6466:12:6" + } + ] + }, + "id": 1447, + "nodeType": "IfStatement", + "src": "6272:217:6", + "trueBody": { + "id": 1443, + "nodeType": "Block", + "src": "6301:145:6", + "statements": [ + { + "expression": { + "id": 1432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 1425, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "6315:6:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 1427, + "indexExpression": { + "id": 1426, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1413, + "src": "6322:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6315:12:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$1214_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 1428, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6328:7:6", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 1211, + "src": "6315:20:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1430, + "indexExpression": { + "id": 1429, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "6336:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6315:29:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 1431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6347:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6315:36:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1433, + "nodeType": "ExpressionStatement", + "src": "6315:36:6" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1435, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1413, + "src": "6382:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1436, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "6388:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "6397:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6397:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1434, + "name": "RoleGranted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1519, + "src": "6370:11:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 1439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6370:40:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1440, + "nodeType": "EmitStatement", + "src": "6365:45:6" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6431:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1419, + "id": 1442, + "nodeType": "Return", + "src": "6424:11:6" + } + ] + } + } + ] + }, + "documentation": { + "id": 1411, + "nodeType": "StructuredDocumentation", + "src": "5951:223:6", + "text": " @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n Internal function without access restriction.\n May emit a {RoleGranted} event." + }, + "id": 1449, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_grantRole", + "nameLocation": "6188:10:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1413, + "mutability": "mutable", + "name": "role", + "nameLocation": "6207:4:6", + "nodeType": "VariableDeclaration", + "scope": 1449, + "src": "6199:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1412, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6199:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1415, + "mutability": "mutable", + "name": "account", + "nameLocation": "6221:7:6", + "nodeType": "VariableDeclaration", + "scope": 1449, + "src": "6213:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6213:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6198:31:6" + }, + "returnParameters": { + "id": 1419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1418, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1449, + "src": "6256:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1417, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6256:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6255:6:6" + }, + "scope": 1488, + "src": "6179:316:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1486, + "nodeType": "Block", + "src": "6814:233:6", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 1460, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1452, + "src": "6836:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1461, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1454, + "src": "6842:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1459, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1273, + "src": "6828:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 1462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6828:22:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1484, + "nodeType": "Block", + "src": "7004:37:6", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7025:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1458, + "id": 1483, + "nodeType": "Return", + "src": "7018:12:6" + } + ] + }, + "id": 1485, + "nodeType": "IfStatement", + "src": "6824:217:6", + "trueBody": { + "id": 1481, + "nodeType": "Block", + "src": "6852:146:6", + "statements": [ + { + "expression": { + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 1463, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "6866:6:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 1465, + "indexExpression": { + "id": 1464, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1452, + "src": "6873:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6866:12:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$1214_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6879:7:6", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 1211, + "src": "6866:20:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1468, + "indexExpression": { + "id": 1467, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1454, + "src": "6887:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6866:29:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 1469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6898:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "6866:37:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1471, + "nodeType": "ExpressionStatement", + "src": "6866:37:6" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1473, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1452, + "src": "6934:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1474, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1454, + "src": "6940:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1475, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "6949:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6949:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1472, + "name": "RoleRevoked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1528, + "src": "6922:11:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 1477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6922:40:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1478, + "nodeType": "EmitStatement", + "src": "6917:45:6" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6983:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1458, + "id": 1480, + "nodeType": "Return", + "src": "6976:11:6" + } + ] + } + } + ] + }, + "documentation": { + "id": 1450, + "nodeType": "StructuredDocumentation", + "src": "6501:224:6", + "text": " @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n Internal function without access restriction.\n May emit a {RoleRevoked} event." + }, + "id": 1487, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revokeRole", + "nameLocation": "6739:11:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1452, + "mutability": "mutable", + "name": "role", + "nameLocation": "6759:4:6", + "nodeType": "VariableDeclaration", + "scope": 1487, + "src": "6751:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1451, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6751:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1454, + "mutability": "mutable", + "name": "account", + "nameLocation": "6773:7:6", + "nodeType": "VariableDeclaration", + "scope": 1487, + "src": "6765:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1453, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6765:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6750:31:6" + }, + "returnParameters": { + "id": 1458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1457, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1487, + "src": "6808:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1456, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6808:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6807:6:6" + }, + "scope": 1488, + "src": "6730:317:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1489, + "src": "1953:5096:6", + "usedErrors": [ + 1498, + 1501 + ], + "usedEvents": [ + 1510, + 1519, + 1528 + ] + } + ], + "src": "108:6942:6" + }, + "id": 6 + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "exportedSymbols": { + "IAccessControl": [ + 1571 + ] + }, + "id": 1572, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1490, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:7" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IAccessControl", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1491, + "nodeType": "StructuredDocumentation", + "src": "135:89:7", + "text": " @dev External interface of AccessControl declared to support ERC165 detection." + }, + "fullyImplemented": false, + "id": 1571, + "linearizedBaseContracts": [ + 1571 + ], + "name": "IAccessControl", + "nameLocation": "235:14:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1492, + "nodeType": "StructuredDocumentation", + "src": "256:56:7", + "text": " @dev The `account` is missing a role." + }, + "errorSelector": "e2517d3f", + "id": 1498, + "name": "AccessControlUnauthorizedAccount", + "nameLocation": "323:32:7", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1497, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1494, + "mutability": "mutable", + "name": "account", + "nameLocation": "364:7:7", + "nodeType": "VariableDeclaration", + "scope": 1498, + "src": "356:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "356:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1496, + "mutability": "mutable", + "name": "neededRole", + "nameLocation": "381:10:7", + "nodeType": "VariableDeclaration", + "scope": 1498, + "src": "373:18:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1495, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "373:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "355:37:7" + }, + "src": "317:76:7" + }, + { + "documentation": { + "id": 1499, + "nodeType": "StructuredDocumentation", + "src": "399:148:7", + "text": " @dev The caller of a function is not the expected one.\n NOTE: Don't confuse with {AccessControlUnauthorizedAccount}." + }, + "errorSelector": "6697b232", + "id": 1501, + "name": "AccessControlBadConfirmation", + "nameLocation": "558:28:7", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1500, + "nodeType": "ParameterList", + "parameters": [], + "src": "586:2:7" + }, + "src": "552:37:7" + }, + { + "anonymous": false, + "documentation": { + "id": 1502, + "nodeType": "StructuredDocumentation", + "src": "595:254:7", + "text": " @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this." + }, + "eventSelector": "bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff", + "id": 1510, + "name": "RoleAdminChanged", + "nameLocation": "860:16:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1504, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "893:4:7", + "nodeType": "VariableDeclaration", + "scope": 1510, + "src": "877:20:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1503, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "877:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1506, + "indexed": true, + "mutability": "mutable", + "name": "previousAdminRole", + "nameLocation": "915:17:7", + "nodeType": "VariableDeclaration", + "scope": 1510, + "src": "899:33:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1505, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "899:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1508, + "indexed": true, + "mutability": "mutable", + "name": "newAdminRole", + "nameLocation": "950:12:7", + "nodeType": "VariableDeclaration", + "scope": 1510, + "src": "934:28:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1507, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "934:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "876:87:7" + }, + "src": "854:110:7" + }, + { + "anonymous": false, + "documentation": { + "id": 1511, + "nodeType": "StructuredDocumentation", + "src": "970:212:7", + "text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}." + }, + "eventSelector": "2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "id": 1519, + "name": "RoleGranted", + "nameLocation": "1193:11:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1513, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "1221:4:7", + "nodeType": "VariableDeclaration", + "scope": 1519, + "src": "1205:20:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1512, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1205:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1515, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1243:7:7", + "nodeType": "VariableDeclaration", + "scope": 1519, + "src": "1227:23:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1227:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1517, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1268:6:7", + "nodeType": "VariableDeclaration", + "scope": 1519, + "src": "1252:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1516, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1252:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1204:71:7" + }, + "src": "1187:89:7" + }, + { + "anonymous": false, + "documentation": { + "id": 1520, + "nodeType": "StructuredDocumentation", + "src": "1282:275:7", + "text": " @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)" + }, + "eventSelector": "f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b", + "id": 1528, + "name": "RoleRevoked", + "nameLocation": "1568:11:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1522, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "1596:4:7", + "nodeType": "VariableDeclaration", + "scope": 1528, + "src": "1580:20:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1521, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1580:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1524, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1618:7:7", + "nodeType": "VariableDeclaration", + "scope": 1528, + "src": "1602:23:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1602:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1526, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1643:6:7", + "nodeType": "VariableDeclaration", + "scope": 1528, + "src": "1627:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1525, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1627:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1579:71:7" + }, + "src": "1562:89:7" + }, + { + "documentation": { + "id": 1529, + "nodeType": "StructuredDocumentation", + "src": "1657:76:7", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 1538, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "1747:7:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1531, + "mutability": "mutable", + "name": "role", + "nameLocation": "1763:4:7", + "nodeType": "VariableDeclaration", + "scope": 1538, + "src": "1755:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1530, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1755:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1533, + "mutability": "mutable", + "name": "account", + "nameLocation": "1777:7:7", + "nodeType": "VariableDeclaration", + "scope": 1538, + "src": "1769:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1769:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1754:31:7" + }, + "returnParameters": { + "id": 1537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1536, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1538, + "src": "1809:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1535, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1809:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1808:6:7" + }, + "scope": 1571, + "src": "1738:77:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1539, + "nodeType": "StructuredDocumentation", + "src": "1821:184:7", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 1546, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nameLocation": "2019:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1541, + "mutability": "mutable", + "name": "role", + "nameLocation": "2040:4:7", + "nodeType": "VariableDeclaration", + "scope": 1546, + "src": "2032:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1540, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2032:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2031:14:7" + }, + "returnParameters": { + "id": 1545, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1544, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1546, + "src": "2069:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1543, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2069:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2068:9:7" + }, + "scope": 1571, + "src": "2010:68:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1547, + "nodeType": "StructuredDocumentation", + "src": "2084:239:7", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "2f2ff15d", + "id": 1554, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "grantRole", + "nameLocation": "2337:9:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1549, + "mutability": "mutable", + "name": "role", + "nameLocation": "2355:4:7", + "nodeType": "VariableDeclaration", + "scope": 1554, + "src": "2347:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1548, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2347:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1551, + "mutability": "mutable", + "name": "account", + "nameLocation": "2369:7:7", + "nodeType": "VariableDeclaration", + "scope": 1554, + "src": "2361:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1550, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2361:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2346:31:7" + }, + "returnParameters": { + "id": 1553, + "nodeType": "ParameterList", + "parameters": [], + "src": "2386:0:7" + }, + "scope": 1571, + "src": "2328:59:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1555, + "nodeType": "StructuredDocumentation", + "src": "2393:223:7", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "d547741f", + "id": 1562, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "revokeRole", + "nameLocation": "2630:10:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1557, + "mutability": "mutable", + "name": "role", + "nameLocation": "2649:4:7", + "nodeType": "VariableDeclaration", + "scope": 1562, + "src": "2641:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1556, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2641:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1559, + "mutability": "mutable", + "name": "account", + "nameLocation": "2663:7:7", + "nodeType": "VariableDeclaration", + "scope": 1562, + "src": "2655:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2655:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2640:31:7" + }, + "returnParameters": { + "id": 1561, + "nodeType": "ParameterList", + "parameters": [], + "src": "2680:0:7" + }, + "scope": 1571, + "src": "2621:60:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1563, + "nodeType": "StructuredDocumentation", + "src": "2687:491:7", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`." + }, + "functionSelector": "36568abe", + "id": 1570, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "3192:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1565, + "mutability": "mutable", + "name": "role", + "nameLocation": "3213:4:7", + "nodeType": "VariableDeclaration", + "scope": 1570, + "src": "3205:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1564, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3205:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1567, + "mutability": "mutable", + "name": "callerConfirmation", + "nameLocation": "3227:18:7", + "nodeType": "VariableDeclaration", + "scope": 1570, + "src": "3219:26:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1566, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3219:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3204:42:7" + }, + "returnParameters": { + "id": 1569, + "nodeType": "ParameterList", + "parameters": [], + "src": "3255:0:7" + }, + "scope": 1571, + "src": "3183:73:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1572, + "src": "225:3033:7", + "usedErrors": [ + 1498, + 1501 + ], + "usedEvents": [ + 1510, + 1519, + 1528 + ] + } + ], + "src": "109:3150:7" + }, + "id": 7 + }, + "@openzeppelin/contracts/access/Ownable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Context": [ + 3419 + ], + "Ownable": [ + 1719 + ] + }, + "id": 1720, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1573, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:8" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 1575, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1720, + "sourceUnit": 3420, + "src": "128:45:8", + "symbolAliases": [ + { + "foreign": { + "id": 1574, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3419, + "src": "136:7:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1577, + "name": "Context", + "nameLocations": [ + "692:7:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3419, + "src": "692:7:8" + }, + "id": 1578, + "nodeType": "InheritanceSpecifier", + "src": "692:7:8" + } + ], + "canonicalName": "Ownable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1576, + "nodeType": "StructuredDocumentation", + "src": "175:487:8", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 1719, + "linearizedBaseContracts": [ + 1719, + 3419 + ], + "name": "Ownable", + "nameLocation": "681:7:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1580, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "722:6:8", + "nodeType": "VariableDeclaration", + "scope": 1719, + "src": "706:22:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1579, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "706:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 1581, + "nodeType": "StructuredDocumentation", + "src": "735:85:8", + "text": " @dev The caller account is not authorized to perform an operation." + }, + "errorSelector": "118cdaa7", + "id": 1585, + "name": "OwnableUnauthorizedAccount", + "nameLocation": "831:26:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1583, + "mutability": "mutable", + "name": "account", + "nameLocation": "866:7:8", + "nodeType": "VariableDeclaration", + "scope": 1585, + "src": "858:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "857:17:8" + }, + "src": "825:50:8" + }, + { + "documentation": { + "id": 1586, + "nodeType": "StructuredDocumentation", + "src": "881:82:8", + "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" + }, + "errorSelector": "1e4fbdf7", + "id": 1590, + "name": "OwnableInvalidOwner", + "nameLocation": "974:19:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1588, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1002:5:8", + "nodeType": "VariableDeclaration", + "scope": 1590, + "src": "994:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "994:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "993:15:8" + }, + "src": "968:41:8" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 1596, + "name": "OwnershipTransferred", + "nameLocation": "1021:20:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 1595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1592, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1058:13:8", + "nodeType": "VariableDeclaration", + "scope": 1596, + "src": "1042:29:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1042:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1594, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1089:8:8", + "nodeType": "VariableDeclaration", + "scope": 1596, + "src": "1073:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1593, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1073:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1041:57:8" + }, + "src": "1015:84:8" + }, + { + "body": { + "id": 1621, + "nodeType": "Block", + "src": "1259:153:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1602, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "1273:12:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1297:1:8", + "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": 1604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1289:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1289:7:8", + "typeDescriptions": {} + } + }, + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1289:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1273:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1616, + "nodeType": "IfStatement", + "src": "1269:95:8", + "trueBody": { + "id": 1615, + "nodeType": "Block", + "src": "1301:63:8", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1350:1:8", + "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": 1610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1342:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1609, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1342:7:8", + "typeDescriptions": {} + } + }, + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1342:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1608, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1590, + "src": "1322:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1322:31:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1614, + "nodeType": "RevertStatement", + "src": "1315:38:8" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1618, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "1392:12:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1617, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1718, + "src": "1373:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1373:32:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1620, + "nodeType": "ExpressionStatement", + "src": "1373:32:8" + } + ] + }, + "documentation": { + "id": 1597, + "nodeType": "StructuredDocumentation", + "src": "1105:115:8", + "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." + }, + "id": 1622, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1599, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1245:12:8", + "nodeType": "VariableDeclaration", + "scope": 1622, + "src": "1237:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1237:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1236:22:8" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [], + "src": "1259:0:8" + }, + "scope": 1719, + "src": "1225:187:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1629, + "nodeType": "Block", + "src": "1521:41:8", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1625, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1656, + "src": "1531:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 1626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1531:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1627, + "nodeType": "ExpressionStatement", + "src": "1531:13:8" + }, + { + "id": 1628, + "nodeType": "PlaceholderStatement", + "src": "1554:1:8" + } + ] + }, + "documentation": { + "id": 1623, + "nodeType": "StructuredDocumentation", + "src": "1418:77:8", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 1630, + "name": "onlyOwner", + "nameLocation": "1509:9:8", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1624, + "nodeType": "ParameterList", + "parameters": [], + "src": "1518:2:8" + }, + "src": "1500:62:8", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1638, + "nodeType": "Block", + "src": "1693:30:8", + "statements": [ + { + "expression": { + "id": 1636, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1580, + "src": "1710:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1635, + "id": 1637, + "nodeType": "Return", + "src": "1703:13:8" + } + ] + }, + "documentation": { + "id": 1631, + "nodeType": "StructuredDocumentation", + "src": "1568:65:8", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 1639, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "1647:5:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1632, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:2:8" + }, + "returnParameters": { + "id": 1635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1634, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1639, + "src": "1684:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1684:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1683:9:8" + }, + "scope": 1719, + "src": "1638:85:8", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1655, + "nodeType": "Block", + "src": "1841:117:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1643, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1639, + "src": "1855:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:7:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1645, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "1866:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1866:12:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1855:23:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1654, + "nodeType": "IfStatement", + "src": "1851:101:8", + "trueBody": { + "id": 1653, + "nodeType": "Block", + "src": "1880:72:8", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1649, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "1928:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1928:12:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1648, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1585, + "src": "1901:26:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1901:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1652, + "nodeType": "RevertStatement", + "src": "1894:47:8" + } + ] + } + } + ] + }, + "documentation": { + "id": 1640, + "nodeType": "StructuredDocumentation", + "src": "1729:62:8", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 1656, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "1805:11:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1641, + "nodeType": "ParameterList", + "parameters": [], + "src": "1816:2:8" + }, + "returnParameters": { + "id": 1642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:0:8" + }, + "scope": 1719, + "src": "1796:162:8", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1669, + "nodeType": "Block", + "src": "2347:47:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2384:1:8", + "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": 1664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2376:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1663, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2376:7:8", + "typeDescriptions": {} + } + }, + "id": 1666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2376:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1662, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1718, + "src": "2357:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2357:30:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1668, + "nodeType": "ExpressionStatement", + "src": "2357:30:8" + } + ] + }, + "documentation": { + "id": 1657, + "nodeType": "StructuredDocumentation", + "src": "1964:324:8", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 1670, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1660, + "kind": "modifierInvocation", + "modifierName": { + "id": 1659, + "name": "onlyOwner", + "nameLocations": [ + "2337:9:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1630, + "src": "2337:9:8" + }, + "nodeType": "ModifierInvocation", + "src": "2337:9:8" + } + ], + "name": "renounceOwnership", + "nameLocation": "2302:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1658, + "nodeType": "ParameterList", + "parameters": [], + "src": "2319:2:8" + }, + "returnParameters": { + "id": 1661, + "nodeType": "ParameterList", + "parameters": [], + "src": "2347:0:8" + }, + "scope": 1719, + "src": "2293:101:8", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1697, + "nodeType": "Block", + "src": "2613:145:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1678, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2627:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2647:1:8", + "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": 1680, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2639:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1679, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2639:7:8", + "typeDescriptions": {} + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2639:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2627:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1692, + "nodeType": "IfStatement", + "src": "2623:91:8", + "trueBody": { + "id": 1691, + "nodeType": "Block", + "src": "2651:63:8", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2700:1:8", + "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": 1686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2692:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1685, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2692:7:8", + "typeDescriptions": {} + } + }, + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2692:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1684, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1590, + "src": "2672:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2672:31:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1690, + "nodeType": "RevertStatement", + "src": "2665:38:8" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1694, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "2742:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1693, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1718, + "src": "2723:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2723:28:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1696, + "nodeType": "ExpressionStatement", + "src": "2723:28:8" + } + ] + }, + "documentation": { + "id": 1671, + "nodeType": "StructuredDocumentation", + "src": "2400:138:8", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 1698, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1676, + "kind": "modifierInvocation", + "modifierName": { + "id": 1675, + "name": "onlyOwner", + "nameLocations": [ + "2603:9:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1630, + "src": "2603:9:8" + }, + "nodeType": "ModifierInvocation", + "src": "2603:9:8" + } + ], + "name": "transferOwnership", + "nameLocation": "2552:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1673, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2578:8:8", + "nodeType": "VariableDeclaration", + "scope": 1698, + "src": "2570:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2570:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2569:18:8" + }, + "returnParameters": { + "id": 1677, + "nodeType": "ParameterList", + "parameters": [], + "src": "2613:0:8" + }, + "scope": 1719, + "src": "2543:215:8", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1717, + "nodeType": "Block", + "src": "2975:124:8", + "statements": [ + { + "assignments": [ + 1705 + ], + "declarations": [ + { + "constant": false, + "id": 1705, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "2993:8:8", + "nodeType": "VariableDeclaration", + "scope": 1717, + "src": "2985:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2985:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1707, + "initialValue": { + "id": 1706, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1580, + "src": "3004:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2985:25:8" + }, + { + "expression": { + "id": 1710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1708, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1580, + "src": "3020:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1709, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1701, + "src": "3029:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3020:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1711, + "nodeType": "ExpressionStatement", + "src": "3020:17:8" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1713, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1705, + "src": "3073:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1714, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1701, + "src": "3083:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1712, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1596, + "src": "3052:20:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 1715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3052:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1716, + "nodeType": "EmitStatement", + "src": "3047:45:8" + } + ] + }, + "documentation": { + "id": 1699, + "nodeType": "StructuredDocumentation", + "src": "2764:143:8", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 1718, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2921:18:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1701, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2948:8:8", + "nodeType": "VariableDeclaration", + "scope": 1718, + "src": "2940:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2940:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2939:18:8" + }, + "returnParameters": { + "id": 1703, + "nodeType": "ParameterList", + "parameters": [], + "src": "2975:0:8" + }, + "scope": 1719, + "src": "2912:187:8", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1720, + "src": "663:2438:8", + "usedErrors": [ + 1585, + 1590 + ], + "usedEvents": [ + 1596 + ] + } + ], + "src": "102:3000:8" + }, + "id": 8 + }, + "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", + "exportedSymbols": { + "AccessControl": [ + 1488 + ], + "AccessControlDefaultAdminRules": [ + 2436 + ], + "IAccessControl": [ + 1571 + ], + "IAccessControlDefaultAdminRules": [ + 2535 + ], + "IERC5313": [ + 2566 + ], + "Math": [ + 4736 + ], + "SafeCast": [ + 6491 + ] + }, + "id": 2437, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1721, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "136:24:9" + }, + { + "absolutePath": "@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol", + "file": "./IAccessControlDefaultAdminRules.sol", + "id": 1723, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2437, + "sourceUnit": 2536, + "src": "162:86:9", + "symbolAliases": [ + { + "foreign": { + "id": 1722, + "name": "IAccessControlDefaultAdminRules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "170:31:9", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "file": "../AccessControl.sol", + "id": 1726, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2437, + "sourceUnit": 1489, + "src": "249:67:9", + "symbolAliases": [ + { + "foreign": { + "id": 1724, + "name": "AccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1488, + "src": "257:13:9", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 1725, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1571, + "src": "272:14:9", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "file": "../../utils/math/SafeCast.sol", + "id": 1728, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2437, + "sourceUnit": 6492, + "src": "317:55:9", + "symbolAliases": [ + { + "foreign": { + "id": 1727, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "325:8:9", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "../../utils/math/Math.sol", + "id": 1730, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2437, + "sourceUnit": 4737, + "src": "373:47:9", + "symbolAliases": [ + { + "foreign": { + "id": 1729, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4736, + "src": "381:4:9", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC5313.sol", + "file": "../../interfaces/IERC5313.sol", + "id": 1732, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2437, + "sourceUnit": 2567, + "src": "421:55:9", + "symbolAliases": [ + { + "foreign": { + "id": 1731, + "name": "IERC5313", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2566, + "src": "429:8:9", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1734, + "name": "IAccessControlDefaultAdminRules", + "nameLocations": [ + "1749:31:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2535, + "src": "1749:31:9" + }, + "id": 1735, + "nodeType": "InheritanceSpecifier", + "src": "1749:31:9" + }, + { + "baseName": { + "id": 1736, + "name": "IERC5313", + "nameLocations": [ + "1782:8:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2566, + "src": "1782:8:9" + }, + "id": 1737, + "nodeType": "InheritanceSpecifier", + "src": "1782:8:9" + }, + { + "baseName": { + "id": 1738, + "name": "AccessControl", + "nameLocations": [ + "1792:13:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1488, + "src": "1792:13:9" + }, + "id": 1739, + "nodeType": "InheritanceSpecifier", + "src": "1792:13:9" + } + ], + "canonicalName": "AccessControlDefaultAdminRules", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1733, + "nodeType": "StructuredDocumentation", + "src": "478:1218:9", + "text": " @dev Extension of {AccessControl} that allows specifying special rules to manage\n the `DEFAULT_ADMIN_ROLE` holder, which is a sensitive role with special permissions\n over other roles that may potentially have privileged rights in the system.\n If a specific role doesn't have an admin role assigned, the holder of the\n `DEFAULT_ADMIN_ROLE` will have the ability to grant it and revoke it.\n This contract implements the following risk mitigations on top of {AccessControl}:\n * Only one account holds the `DEFAULT_ADMIN_ROLE` since deployment until it's potentially renounced.\n * Enforces a 2-step process to transfer the `DEFAULT_ADMIN_ROLE` to another account.\n * Enforces a configurable delay between the two steps, with the ability to cancel before the transfer is accepted.\n * The delay can be changed by scheduling, see {changeDefaultAdminDelay}.\n * It is not possible to use another role to manage the `DEFAULT_ADMIN_ROLE`.\n Example usage:\n ```solidity\n contract MyToken is AccessControlDefaultAdminRules {\n constructor() AccessControlDefaultAdminRules(\n 3 days,\n msg.sender // Explicit initial `DEFAULT_ADMIN_ROLE` holder\n ) {}\n }\n ```" + }, + "fullyImplemented": true, + "id": 2436, + "linearizedBaseContracts": [ + 2436, + 1488, + 3670, + 3682, + 2566, + 2535, + 1571, + 3419 + ], + "name": "AccessControlDefaultAdminRules", + "nameLocation": "1715:30:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1741, + "mutability": "mutable", + "name": "_pendingDefaultAdmin", + "nameLocation": "1887:20:9", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1871:36:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1740, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1871:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1743, + "mutability": "mutable", + "name": "_pendingDefaultAdminSchedule", + "nameLocation": "1928:28:9", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1913:43:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 1742, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "1913:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1745, + "mutability": "mutable", + "name": "_currentDelay", + "nameLocation": "1992:13:9", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1977:28:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 1744, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "1977:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1747, + "mutability": "mutable", + "name": "_currentDefaultAdmin", + "nameLocation": "2027:20:9", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "2011:36:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1746, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2011:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1749, + "mutability": "mutable", + "name": "_pendingDelay", + "nameLocation": "2128:13:9", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "2113:28:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 1748, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "2113:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1751, + "mutability": "mutable", + "name": "_pendingDelaySchedule", + "nameLocation": "2162:21:9", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "2147:36:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 1750, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "2147:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1783, + "nodeType": "Block", + "src": "2370:230:9", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1759, + "name": "initialDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1756, + "src": "2384:19:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2415:1:9", + "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": 1761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2407:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1760, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2407:7:9", + "typeDescriptions": {} + } + }, + "id": 1763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2407:10:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2384:33:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1773, + "nodeType": "IfStatement", + "src": "2380:115:9", + "trueBody": { + "id": 1772, + "nodeType": "Block", + "src": "2419:76:9", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2481:1:9", + "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": 1767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2473:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1766, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2473:7:9", + "typeDescriptions": {} + } + }, + "id": 1769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2473:10:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1765, + "name": "AccessControlInvalidDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2448, + "src": "2440:32:9", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2440:44:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1771, + "nodeType": "RevertStatement", + "src": "2433:51:9" + } + ] + } + }, + { + "expression": { + "id": 1776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1774, + "name": "_currentDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1745, + "src": "2504:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1775, + "name": "initialDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1754, + "src": "2520:12:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "2504:28:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 1777, + "nodeType": "ExpressionStatement", + "src": "2504:28:9" + }, + { + "expression": { + "arguments": [ + { + "id": 1779, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "2553:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1780, + "name": "initialDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1756, + "src": "2573:19:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1778, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1970 + ], + "referencedDeclaration": 1970, + "src": "2542:10:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 1781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2542:51:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1782, + "nodeType": "ExpressionStatement", + "src": "2542:51:9" + } + ] + }, + "documentation": { + "id": 1752, + "nodeType": "StructuredDocumentation", + "src": "2204:99:9", + "text": " @dev Sets the initial values for {defaultAdminDelay} and {defaultAdmin} address." + }, + "id": 1784, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1754, + "mutability": "mutable", + "name": "initialDelay", + "nameLocation": "2327:12:9", + "nodeType": "VariableDeclaration", + "scope": 1784, + "src": "2320:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 1753, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "2320:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1756, + "mutability": "mutable", + "name": "initialDefaultAdmin", + "nameLocation": "2349:19:9", + "nodeType": "VariableDeclaration", + "scope": 1784, + "src": "2341:27:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1755, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2341:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2319:50:9" + }, + "returnParameters": { + "id": 1758, + "nodeType": "ParameterList", + "parameters": [], + "src": "2370:0:9" + }, + "scope": 2436, + "src": "2308:292:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1255 + ], + "body": { + "id": 1805, + "nodeType": "Block", + "src": "2758:128:9", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1793, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "2775:11:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1795, + "name": "IAccessControlDefaultAdminRules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "2795:31:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAccessControlDefaultAdminRules_$2535_$", + "typeString": "type(contract IAccessControlDefaultAdminRules)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IAccessControlDefaultAdminRules_$2535_$", + "typeString": "type(contract IAccessControlDefaultAdminRules)" + } + ], + "id": 1794, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2790:4:9", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2790:37:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControlDefaultAdminRules_$2535", + "typeString": "type(contract IAccessControlDefaultAdminRules)" + } + }, + "id": 1797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2828:11:9", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "2790:49:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "2775:64:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1801, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "2867:11:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 1799, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2843:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$", + "typeString": "type(contract super AccessControlDefaultAdminRules)" + } + }, + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2849:17:9", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 1255, + "src": "2843:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 1802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2843:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2775:104:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1792, + "id": 1804, + "nodeType": "Return", + "src": "2768:111:9" + } + ] + }, + "documentation": { + "id": 1785, + "nodeType": "StructuredDocumentation", + "src": "2606:56:9", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 1806, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2676:17:9", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1789, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2734:8:9" + }, + "parameters": { + "id": 1788, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1787, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "2701:11:9", + "nodeType": "VariableDeclaration", + "scope": 1806, + "src": "2694:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1786, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2694:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2693:20:9" + }, + "returnParameters": { + "id": 1792, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1791, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1806, + "src": "2752:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2752:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2751:6:9" + }, + "scope": 2436, + "src": "2667:219:9", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2565 + ], + "body": { + "id": 1815, + "nodeType": "Block", + "src": "2997:38:9", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1812, + "name": "defaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "3014:12:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3014:14:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1811, + "id": 1814, + "nodeType": "Return", + "src": "3007:21:9" + } + ] + }, + "documentation": { + "id": 1807, + "nodeType": "StructuredDocumentation", + "src": "2892:45:9", + "text": " @dev See {IERC5313-owner}." + }, + "functionSelector": "8da5cb5b", + "id": 1816, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "2951:5:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1808, + "nodeType": "ParameterList", + "parameters": [], + "src": "2956:2:9" + }, + "returnParameters": { + "id": 1811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1810, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1816, + "src": "2988:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1809, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2988:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2987:9:9" + }, + "scope": 2436, + "src": "2942:93:9", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1340, + 1554 + ], + "body": { + "id": 1842, + "nodeType": "Block", + "src": "3303:160:9", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 1829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1827, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1819, + "src": "3317:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1828, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "3325:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3317:26:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1834, + "nodeType": "IfStatement", + "src": "3313:104:9", + "trueBody": { + "id": 1833, + "nodeType": "Block", + "src": "3345:72:9", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1830, + "name": "AccessControlEnforcedDefaultAdminRules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2451, + "src": "3366:38:9", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3366:40:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1832, + "nodeType": "RevertStatement", + "src": "3359:47:9" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1838, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1819, + "src": "3442:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1839, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "3448:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1835, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "3426:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$", + "typeString": "type(contract super AccessControlDefaultAdminRules)" + } + }, + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3432:9:9", + "memberName": "grantRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 1340, + "src": "3426:15:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3426:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1841, + "nodeType": "ExpressionStatement", + "src": "3426:30:9" + } + ] + }, + "documentation": { + "id": 1817, + "nodeType": "StructuredDocumentation", + "src": "3105:88:9", + "text": " @dev See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`." + }, + "functionSelector": "2f2ff15d", + "id": 1843, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "grantRole", + "nameLocation": "3207:9:9", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1825, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 1823, + "name": "AccessControl", + "nameLocations": [ + "3272:13:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1488, + "src": "3272:13:9" + }, + { + "id": 1824, + "name": "IAccessControl", + "nameLocations": [ + "3287:14:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1571, + "src": "3287:14:9" + } + ], + "src": "3263:39:9" + }, + "parameters": { + "id": 1822, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1819, + "mutability": "mutable", + "name": "role", + "nameLocation": "3225:4:9", + "nodeType": "VariableDeclaration", + "scope": 1843, + "src": "3217:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1818, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3217:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1821, + "mutability": "mutable", + "name": "account", + "nameLocation": "3239:7:9", + "nodeType": "VariableDeclaration", + "scope": 1843, + "src": "3231:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1820, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3231:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3216:31:9" + }, + "returnParameters": { + "id": 1826, + "nodeType": "ParameterList", + "parameters": [], + "src": "3303:0:9" + }, + "scope": 2436, + "src": "3198:265:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1359, + 1562 + ], + "body": { + "id": 1869, + "nodeType": "Block", + "src": "3669:161:9", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1854, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1846, + "src": "3683:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1855, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "3691:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3683:26:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1861, + "nodeType": "IfStatement", + "src": "3679:104:9", + "trueBody": { + "id": 1860, + "nodeType": "Block", + "src": "3711:72:9", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1857, + "name": "AccessControlEnforcedDefaultAdminRules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2451, + "src": "3732:38:9", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3732:40:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1859, + "nodeType": "RevertStatement", + "src": "3725:47:9" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1865, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1846, + "src": "3809:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1866, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1848, + "src": "3815:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1862, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "3792:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$", + "typeString": "type(contract super AccessControlDefaultAdminRules)" + } + }, + "id": 1864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3798:10:9", + "memberName": "revokeRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 1359, + "src": "3792:16:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 1867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3792:31:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1868, + "nodeType": "ExpressionStatement", + "src": "3792:31:9" + } + ] + }, + "documentation": { + "id": 1844, + "nodeType": "StructuredDocumentation", + "src": "3469:89:9", + "text": " @dev See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`." + }, + "functionSelector": "d547741f", + "id": 1870, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "revokeRole", + "nameLocation": "3572:10:9", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1852, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 1850, + "name": "AccessControl", + "nameLocations": [ + "3638:13:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1488, + "src": "3638:13:9" + }, + { + "id": 1851, + "name": "IAccessControl", + "nameLocations": [ + "3653:14:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1571, + "src": "3653:14:9" + } + ], + "src": "3629:39:9" + }, + "parameters": { + "id": 1849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1846, + "mutability": "mutable", + "name": "role", + "nameLocation": "3591:4:9", + "nodeType": "VariableDeclaration", + "scope": 1870, + "src": "3583:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1845, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3583:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1848, + "mutability": "mutable", + "name": "account", + "nameLocation": "3605:7:9", + "nodeType": "VariableDeclaration", + "scope": 1870, + "src": "3597:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3597:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3582:31:9" + }, + "returnParameters": { + "id": 1853, + "nodeType": "ParameterList", + "parameters": [], + "src": "3669:0:9" + }, + "scope": 2436, + "src": "3563:267:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1382, + 1570 + ], + "body": { + "id": 1930, + "nodeType": "Block", + "src": "4623:458:9", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1881, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "4637:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1882, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "4645:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "4637:26:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1884, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "4667:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1885, + "name": "defaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "4678:12:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4678:14:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4667:25:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4637:55:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1922, + "nodeType": "IfStatement", + "src": "4633:399:9", + "trueBody": { + "id": 1921, + "nodeType": "Block", + "src": "4694:338:9", + "statements": [ + { + "assignments": [ + 1890, + 1892 + ], + "declarations": [ + { + "constant": false, + "id": 1890, + "mutability": "mutable", + "name": "newDefaultAdmin", + "nameLocation": "4717:15:9", + "nodeType": "VariableDeclaration", + "scope": 1921, + "src": "4709:23:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1889, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4709:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "schedule", + "nameLocation": "4741:8:9", + "nodeType": "VariableDeclaration", + "scope": 1921, + "src": "4734:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 1891, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "4734:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "id": 1895, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1893, + "name": "pendingDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2048, + "src": "4753:19:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$_t_uint48_$", + "typeString": "function () view returns (address,uint48)" + } + }, + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4753:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_uint48_$", + "typeString": "tuple(address,uint48)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4708:66:9" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1896, + "name": "newDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1890, + "src": "4792:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1899, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4819:1:9", + "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": 1898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4811:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1897, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4811:7:9", + "typeDescriptions": {} + } + }, + "id": 1900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4811:10:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4792:29:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 1905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4825:25:9", + "subExpression": { + "arguments": [ + { + "id": 1903, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1892, + "src": "4841:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 1902, + "name": "_isScheduleSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "4826:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint48_$returns$_t_bool_$", + "typeString": "function (uint48) pure returns (bool)" + } + }, + "id": 1904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4826:24:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4792:58:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4854:29:9", + "subExpression": { + "arguments": [ + { + "id": 1908, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1892, + "src": "4874:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 1907, + "name": "_hasSchedulePassed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2435, + "src": "4855:18:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint48_$returns$_t_bool_$", + "typeString": "function (uint48) view returns (bool)" + } + }, + "id": 1909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4855:28:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4792:91:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1917, + "nodeType": "IfStatement", + "src": "4788:185:9", + "trueBody": { + "id": 1916, + "nodeType": "Block", + "src": "4885:88:9", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1913, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1892, + "src": "4949:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 1912, + "name": "AccessControlEnforcedDefaultAdminDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2456, + "src": "4910:38:9", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint48_$returns$_t_error_$", + "typeString": "function (uint48) pure returns (error)" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4910:48:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1915, + "nodeType": "RevertStatement", + "src": "4903:55:9" + } + ] + } + }, + { + "expression": { + "id": 1919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "4986:35:9", + "subExpression": { + "id": 1918, + "name": "_pendingDefaultAdminSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1743, + "src": "4993:28:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1920, + "nodeType": "ExpressionStatement", + "src": "4986:35:9" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1926, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "5060:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1927, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "5066:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1923, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "5041:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$", + "typeString": "type(contract super AccessControlDefaultAdminRules)" + } + }, + "id": 1925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5047:12:9", + "memberName": "renounceRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 1382, + "src": "5041:18:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 1928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5041:33:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1929, + "nodeType": "ExpressionStatement", + "src": "5041:33:9" + } + ] + }, + "documentation": { + "id": 1871, + "nodeType": "StructuredDocumentation", + "src": "3836:674:9", + "text": " @dev See {AccessControl-renounceRole}.\n For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling\n {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule\n has also passed when calling this function.\n After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions.\n NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin},\n thereby disabling any functionality that is only available for it, and the possibility of reassigning a\n non-administrated role." + }, + "functionSelector": "36568abe", + "id": 1931, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "4524:12:9", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1879, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 1877, + "name": "AccessControl", + "nameLocations": [ + "4592:13:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1488, + "src": "4592:13:9" + }, + { + "id": 1878, + "name": "IAccessControl", + "nameLocations": [ + "4607:14:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1571, + "src": "4607:14:9" + } + ], + "src": "4583:39:9" + }, + "parameters": { + "id": 1876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1873, + "mutability": "mutable", + "name": "role", + "nameLocation": "4545:4:9", + "nodeType": "VariableDeclaration", + "scope": 1931, + "src": "4537:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1872, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4537:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1875, + "mutability": "mutable", + "name": "account", + "nameLocation": "4559:7:9", + "nodeType": "VariableDeclaration", + "scope": 1931, + "src": "4551:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4551:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4536:31:9" + }, + "returnParameters": { + "id": 1880, + "nodeType": "ParameterList", + "parameters": [], + "src": "4623:0:9" + }, + "scope": 2436, + "src": "4515:566:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1449 + ], + "body": { + "id": 1969, + "nodeType": "Block", + "src": "5601:278:9", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1942, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1934, + "src": "5615:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1943, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "5623:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5615:26:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1962, + "nodeType": "IfStatement", + "src": "5611:214:9", + "trueBody": { + "id": 1961, + "nodeType": "Block", + "src": "5643:182:9", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1945, + "name": "defaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "5661:12:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5661:14:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5687:1:9", + "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": 1948, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5679:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1947, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5679:7:9", + "typeDescriptions": {} + } + }, + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5679:10:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5661:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1956, + "nodeType": "IfStatement", + "src": "5657:114:9", + "trueBody": { + "id": 1955, + "nodeType": "Block", + "src": "5691:80:9", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1952, + "name": "AccessControlEnforcedDefaultAdminRules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2451, + "src": "5716:38:9", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 1953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5716:40:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1954, + "nodeType": "RevertStatement", + "src": "5709:47:9" + } + ] + } + }, + { + "expression": { + "id": 1959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1957, + "name": "_currentDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "5784:20:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1958, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1936, + "src": "5807:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5784:30:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1960, + "nodeType": "ExpressionStatement", + "src": "5784:30:9" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1965, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1934, + "src": "5858:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1966, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1936, + "src": "5864:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1963, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "5841:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$", + "typeString": "type(contract super AccessControlDefaultAdminRules)" + } + }, + "id": 1964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5847:10:9", + "memberName": "_grantRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 1449, + "src": "5841:16:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5841:31:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1941, + "id": 1968, + "nodeType": "Return", + "src": "5834:38:9" + } + ] + }, + "documentation": { + "id": 1932, + "nodeType": "StructuredDocumentation", + "src": "5087:417:9", + "text": " @dev See {AccessControl-_grantRole}.\n For `DEFAULT_ADMIN_ROLE`, it only allows granting if there isn't already a {defaultAdmin} or if the\n role has been previously renounced.\n NOTE: Exposing this function through another mechanism may make the `DEFAULT_ADMIN_ROLE`\n assignable again. Make sure to guarantee this is the expected behavior in your implementation." + }, + "id": 1970, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_grantRole", + "nameLocation": "5518:10:9", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1938, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5577:8:9" + }, + "parameters": { + "id": 1937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1934, + "mutability": "mutable", + "name": "role", + "nameLocation": "5537:4:9", + "nodeType": "VariableDeclaration", + "scope": 1970, + "src": "5529:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1933, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5529:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1936, + "mutability": "mutable", + "name": "account", + "nameLocation": "5551:7:9", + "nodeType": "VariableDeclaration", + "scope": 1970, + "src": "5543:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1935, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5543:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5528:31:9" + }, + "returnParameters": { + "id": 1941, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1940, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1970, + "src": "5595:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1939, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5595:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5594:6:9" + }, + "scope": 2436, + "src": "5509:370:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1487 + ], + "body": { + "id": 2000, + "nodeType": "Block", + "src": "6039:178:9", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 1983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1981, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1973, + "src": "6053:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1982, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "6061:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "6053:26:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1975, + "src": "6083:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1985, + "name": "defaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "6094:12:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6094:14:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6083:25:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6053:55:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1993, + "nodeType": "IfStatement", + "src": "6049:113:9", + "trueBody": { + "id": 1992, + "nodeType": "Block", + "src": "6110:52:9", + "statements": [ + { + "expression": { + "id": 1990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "6124:27:9", + "subExpression": { + "id": 1989, + "name": "_currentDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "6131:20:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1991, + "nodeType": "ExpressionStatement", + "src": "6124:27:9" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1996, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1973, + "src": "6196:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1997, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1975, + "src": "6202:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1994, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "6178:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$", + "typeString": "type(contract super AccessControlDefaultAdminRules)" + } + }, + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6184:11:9", + "memberName": "_revokeRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 1487, + "src": "6178:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 1998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6178:32:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1980, + "id": 1999, + "nodeType": "Return", + "src": "6171:39:9" + } + ] + }, + "documentation": { + "id": 1971, + "nodeType": "StructuredDocumentation", + "src": "5885:56:9", + "text": " @dev See {AccessControl-_revokeRole}." + }, + "id": 2001, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revokeRole", + "nameLocation": "5955:11:9", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1977, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6015:8:9" + }, + "parameters": { + "id": 1976, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1973, + "mutability": "mutable", + "name": "role", + "nameLocation": "5975:4:9", + "nodeType": "VariableDeclaration", + "scope": 2001, + "src": "5967:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1972, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5967:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1975, + "mutability": "mutable", + "name": "account", + "nameLocation": "5989:7:9", + "nodeType": "VariableDeclaration", + "scope": 2001, + "src": "5981:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1974, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5981:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5966:31:9" + }, + "returnParameters": { + "id": 1980, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1979, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2001, + "src": "6033:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1978, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6033:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6032:6:9" + }, + "scope": 2436, + "src": "5946:271:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1410 + ], + "body": { + "id": 2025, + "nodeType": "Block", + "src": "6402:166:9", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2010, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2004, + "src": "6416:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2011, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "6424:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "6416:26:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2017, + "nodeType": "IfStatement", + "src": "6412:104:9", + "trueBody": { + "id": 2016, + "nodeType": "Block", + "src": "6444:72:9", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2013, + "name": "AccessControlEnforcedDefaultAdminRules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2451, + "src": "6465:38:9", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 2014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6465:40:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2015, + "nodeType": "RevertStatement", + "src": "6458:47:9" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 2021, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2004, + "src": "6545:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2022, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2006, + "src": "6551:9:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2018, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "6525:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$", + "typeString": "type(contract super AccessControlDefaultAdminRules)" + } + }, + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6531:13:9", + "memberName": "_setRoleAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1410, + "src": "6525:19:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 2023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6525:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2024, + "nodeType": "ExpressionStatement", + "src": "6525:36:9" + } + ] + }, + "documentation": { + "id": 2002, + "nodeType": "StructuredDocumentation", + "src": "6223:92:9", + "text": " @dev See {AccessControl-_setRoleAdmin}. Reverts for `DEFAULT_ADMIN_ROLE`." + }, + "id": 2026, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setRoleAdmin", + "nameLocation": "6329:13:9", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2008, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6393:8:9" + }, + "parameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2004, + "mutability": "mutable", + "name": "role", + "nameLocation": "6351:4:9", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "6343:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2003, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6343:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "6365:9:9", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "6357:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2005, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6357:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6342:33:9" + }, + "returnParameters": { + "id": 2009, + "nodeType": "ParameterList", + "parameters": [], + "src": "6402:0:9" + }, + "scope": 2436, + "src": "6320:248:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2482 + ], + "body": { + "id": 2034, + "nodeType": "Block", + "src": "6769:44:9", + "statements": [ + { + "expression": { + "id": 2032, + "name": "_currentDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "6786:20:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2031, + "id": 2033, + "nodeType": "Return", + "src": "6779:27:9" + } + ] + }, + "documentation": { + "id": 2027, + "nodeType": "StructuredDocumentation", + "src": "6640:62:9", + "text": " @inheritdoc IAccessControlDefaultAdminRules" + }, + "functionSelector": "84ef8ffc", + "id": 2035, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "defaultAdmin", + "nameLocation": "6716:12:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2028, + "nodeType": "ParameterList", + "parameters": [], + "src": "6728:2:9" + }, + "returnParameters": { + "id": 2031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2030, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2035, + "src": "6760:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2029, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6760:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6759:9:9" + }, + "scope": 2436, + "src": "6707:106:9", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2490 + ], + "body": { + "id": 2047, + "nodeType": "Block", + "src": "6981:76:9", + "statements": [ + { + "expression": { + "components": [ + { + "id": 2043, + "name": "_pendingDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1741, + "src": "6999:20:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2044, + "name": "_pendingDefaultAdminSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1743, + "src": "7021:28:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "id": 2045, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6998:52:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_uint48_$", + "typeString": "tuple(address,uint48)" + } + }, + "functionReturnParameters": 2042, + "id": 2046, + "nodeType": "Return", + "src": "6991:59:9" + } + ] + }, + "documentation": { + "id": 2036, + "nodeType": "StructuredDocumentation", + "src": "6819:62:9", + "text": " @inheritdoc IAccessControlDefaultAdminRules" + }, + "functionSelector": "cf6eefb7", + "id": 2048, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "pendingDefaultAdmin", + "nameLocation": "6895:19:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2037, + "nodeType": "ParameterList", + "parameters": [], + "src": "6914:2:9" + }, + "returnParameters": { + "id": 2042, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2039, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "6954:8:9", + "nodeType": "VariableDeclaration", + "scope": 2048, + "src": "6946:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2038, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6946:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2041, + "mutability": "mutable", + "name": "schedule", + "nameLocation": "6971:8:9", + "nodeType": "VariableDeclaration", + "scope": 2048, + "src": "6964:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2040, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "6964:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "6945:35:9" + }, + "scope": 2436, + "src": "6886:171:9", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2496 + ], + "body": { + "id": 2070, + "nodeType": "Block", + "src": "7196:163:9", + "statements": [ + { + "assignments": [ + 2055 + ], + "declarations": [ + { + "constant": false, + "id": 2055, + "mutability": "mutable", + "name": "schedule", + "nameLocation": "7213:8:9", + "nodeType": "VariableDeclaration", + "scope": 2070, + "src": "7206:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2054, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "7206:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "id": 2057, + "initialValue": { + "id": 2056, + "name": "_pendingDelaySchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1751, + "src": "7224:21:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7206:39:9" + }, + { + "expression": { + "condition": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2059, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2055, + "src": "7278:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2058, + "name": "_isScheduleSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "7263:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint48_$returns$_t_bool_$", + "typeString": "function (uint48) pure returns (bool)" + } + }, + "id": 2060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7263:24:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "arguments": [ + { + "id": 2062, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2055, + "src": "7310:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2061, + "name": "_hasSchedulePassed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2435, + "src": "7291:18:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint48_$returns$_t_bool_$", + "typeString": "function (uint48) view returns (bool)" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7291:28:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7263:56:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 2065, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7262:58:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2067, + "name": "_currentDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1745, + "src": "7339:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 2068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "7262:90:9", + "trueExpression": { + "id": 2066, + "name": "_pendingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "7323:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "functionReturnParameters": 2053, + "id": 2069, + "nodeType": "Return", + "src": "7255:97:9" + } + ] + }, + "documentation": { + "id": 2049, + "nodeType": "StructuredDocumentation", + "src": "7063:62:9", + "text": " @inheritdoc IAccessControlDefaultAdminRules" + }, + "functionSelector": "cc8463c8", + "id": 2071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "defaultAdminDelay", + "nameLocation": "7139:17:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2050, + "nodeType": "ParameterList", + "parameters": [], + "src": "7156:2:9" + }, + "returnParameters": { + "id": 2053, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2052, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2071, + "src": "7188:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2051, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "7188:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "7187:8:9" + }, + "scope": 2436, + "src": "7130:229:9", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2504 + ], + "body": { + "id": 2100, + "nodeType": "Block", + "src": "7531:162:9", + "statements": [ + { + "expression": { + "id": 2081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2079, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "7541:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2080, + "name": "_pendingDelaySchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1751, + "src": "7552:21:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "7541:32:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 2082, + "nodeType": "ExpressionStatement", + "src": "7541:32:9" + }, + { + "expression": { + "condition": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2084, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "7606:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2083, + "name": "_isScheduleSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "7591:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint48_$returns$_t_bool_$", + "typeString": "function (uint48) pure returns (bool)" + } + }, + "id": 2085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7591:24:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 2089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7619:29:9", + "subExpression": { + "arguments": [ + { + "id": 2087, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "7639:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2086, + "name": "_hasSchedulePassed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2435, + "src": "7620:18:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint48_$returns$_t_bool_$", + "typeString": "function (uint48) view returns (bool)" + } + }, + "id": 2088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7620:28:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7591:57:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 2091, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7590:59:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "hexValue": "30", + "id": 2095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7681:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 2096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7684:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2097, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7680:6:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$", + "typeString": "tuple(int_const 0,int_const 0)" + } + }, + "id": 2098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "7590:96:9", + "trueExpression": { + "components": [ + { + "id": 2092, + "name": "_pendingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "7653:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + { + "id": 2093, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "7668:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "id": 2094, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7652:25:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint48_$_t_uint48_$", + "typeString": "tuple(uint48,uint48)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint48_$_t_uint48_$", + "typeString": "tuple(uint48,uint48)" + } + }, + "functionReturnParameters": 2078, + "id": 2099, + "nodeType": "Return", + "src": "7583:103:9" + } + ] + }, + "documentation": { + "id": 2072, + "nodeType": "StructuredDocumentation", + "src": "7365:62:9", + "text": " @inheritdoc IAccessControlDefaultAdminRules" + }, + "functionSelector": "a1eda53c", + "id": 2101, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "pendingDefaultAdminDelay", + "nameLocation": "7441:24:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2073, + "nodeType": "ParameterList", + "parameters": [], + "src": "7465:2:9" + }, + "returnParameters": { + "id": 2078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2075, + "mutability": "mutable", + "name": "newDelay", + "nameLocation": "7504:8:9", + "nodeType": "VariableDeclaration", + "scope": 2101, + "src": "7497:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2074, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "7497:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2077, + "mutability": "mutable", + "name": "schedule", + "nameLocation": "7521:8:9", + "nodeType": "VariableDeclaration", + "scope": 2101, + "src": "7514:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2076, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "7514:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "7496:34:9" + }, + "scope": 2436, + "src": "7432:261:9", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2534 + ], + "body": { + "id": 2109, + "nodeType": "Block", + "src": "7844:30:9", + "statements": [ + { + "expression": { + "hexValue": "35", + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7861:6:9", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_432000_by_1", + "typeString": "int_const 432000" + }, + "value": "5" + }, + "functionReturnParameters": 2106, + "id": 2108, + "nodeType": "Return", + "src": "7854:13:9" + } + ] + }, + "documentation": { + "id": 2102, + "nodeType": "StructuredDocumentation", + "src": "7699:62:9", + "text": " @inheritdoc IAccessControlDefaultAdminRules" + }, + "functionSelector": "022d63fb", + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "defaultAdminDelayIncreaseWait", + "nameLocation": "7775:29:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2103, + "nodeType": "ParameterList", + "parameters": [], + "src": "7804:2:9" + }, + "returnParameters": { + "id": 2106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2105, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "7836:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2104, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "7836:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "7835:8:9" + }, + "scope": 2436, + "src": "7766:108:9", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2510 + ], + "body": { + "id": 2123, + "nodeType": "Block", + "src": "8165:53:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2120, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "8202:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2119, + "name": "_beginDefaultAdminTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2152, + "src": "8175:26:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8175:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2122, + "nodeType": "ExpressionStatement", + "src": "8175:36:9" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "8001:62:9", + "text": " @inheritdoc IAccessControlDefaultAdminRules" + }, + "functionSelector": "634e93da", + "id": 2124, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 2116, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "8145:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2117, + "kind": "modifierInvocation", + "modifierName": { + "id": 2115, + "name": "onlyRole", + "nameLocations": [ + "8136:8:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1233, + "src": "8136:8:9" + }, + "nodeType": "ModifierInvocation", + "src": "8136:28:9" + } + ], + "name": "beginDefaultAdminTransfer", + "nameLocation": "8077:25:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "8111:8:9", + "nodeType": "VariableDeclaration", + "scope": 2124, + "src": "8103:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8103:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8102:18:9" + }, + "returnParameters": { + "id": 2118, + "nodeType": "ParameterList", + "parameters": [], + "src": "8165:0:9" + }, + "scope": 2436, + "src": "8068:150:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2151, + "nodeType": "Block", + "src": "8416:217:9", + "statements": [ + { + "assignments": [ + 2131 + ], + "declarations": [ + { + "constant": false, + "id": 2131, + "mutability": "mutable", + "name": "newSchedule", + "nameLocation": "8433:11:9", + "nodeType": "VariableDeclaration", + "scope": 2151, + "src": "8426:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2130, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "8426:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "id": 2140, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "id": 2139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 2134, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "8465:5:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8471:9:9", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "8465:15:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2132, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "8447:8:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$6491_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 2133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8456:8:9", + "memberName": "toUint48", + "nodeType": "MemberAccess", + "referencedDeclaration": 5491, + "src": "8447:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint48_$", + "typeString": "function (uint256) pure returns (uint48)" + } + }, + "id": 2136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8447:34:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2137, + "name": "defaultAdminDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2071, + "src": "8484:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint48_$", + "typeString": "function () view returns (uint48)" + } + }, + "id": 2138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8484:19:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "8447:56:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8426:77:9" + }, + { + "expression": { + "arguments": [ + { + "id": 2142, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2127, + "src": "8537:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2143, + "name": "newSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2131, + "src": "8547:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2141, + "name": "_setPendingDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "8513:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint48_$returns$__$", + "typeString": "function (address,uint48)" + } + }, + "id": 2144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8513:46:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2145, + "nodeType": "ExpressionStatement", + "src": "8513:46:9" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2147, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2127, + "src": "8604:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2148, + "name": "newSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2131, + "src": "8614:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2146, + "name": "DefaultAdminTransferScheduled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2463, + "src": "8574:29:9", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint48_$returns$__$", + "typeString": "function (address,uint48)" + } + }, + "id": 2149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8574:52:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2150, + "nodeType": "EmitStatement", + "src": "8569:57:9" + } + ] + }, + "documentation": { + "id": 2125, + "nodeType": "StructuredDocumentation", + "src": "8224:116:9", + "text": " @dev See {beginDefaultAdminTransfer}.\n Internal function without access restriction." + }, + "id": 2152, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beginDefaultAdminTransfer", + "nameLocation": "8354:26:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2127, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "8389:8:9", + "nodeType": "VariableDeclaration", + "scope": 2152, + "src": "8381:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8381:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8380:18:9" + }, + "returnParameters": { + "id": 2129, + "nodeType": "ParameterList", + "parameters": [], + "src": "8416:0:9" + }, + "scope": 2436, + "src": "8345:288:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2514 + ], + "body": { + "id": 2162, + "nodeType": "Block", + "src": "8788:46:9", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2159, + "name": "_cancelDefaultAdminTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2176, + "src": "8798:27:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8798:29:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2161, + "nodeType": "ExpressionStatement", + "src": "8798:29:9" + } + ] + }, + "documentation": { + "id": 2153, + "nodeType": "StructuredDocumentation", + "src": "8639:62:9", + "text": " @inheritdoc IAccessControlDefaultAdminRules" + }, + "functionSelector": "d602b9fd", + "id": 2163, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 2156, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "8768:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2157, + "kind": "modifierInvocation", + "modifierName": { + "id": 2155, + "name": "onlyRole", + "nameLocations": [ + "8759:8:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1233, + "src": "8759:8:9" + }, + "nodeType": "ModifierInvocation", + "src": "8759:28:9" + } + ], + "name": "cancelDefaultAdminTransfer", + "nameLocation": "8715:26:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2154, + "nodeType": "ParameterList", + "parameters": [], + "src": "8741:2:9" + }, + "returnParameters": { + "id": 2158, + "nodeType": "ParameterList", + "parameters": [], + "src": "8788:0:9" + }, + "scope": 2436, + "src": "8706:128:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2175, + "nodeType": "Block", + "src": "9018:55:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 2170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9060:1:9", + "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": 2169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9052:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2168, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9052:7:9", + "typeDescriptions": {} + } + }, + "id": 2171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9052:10:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "30", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9064:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2167, + "name": "_setPendingDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "9028:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint48_$returns$__$", + "typeString": "function (address,uint48)" + } + }, + "id": 2173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9028:38:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2174, + "nodeType": "ExpressionStatement", + "src": "9028:38:9" + } + ] + }, + "documentation": { + "id": 2164, + "nodeType": "StructuredDocumentation", + "src": "8840:117:9", + "text": " @dev See {cancelDefaultAdminTransfer}.\n Internal function without access restriction." + }, + "id": 2176, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_cancelDefaultAdminTransfer", + "nameLocation": "8971:27:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2165, + "nodeType": "ParameterList", + "parameters": [], + "src": "8998:2:9" + }, + "returnParameters": { + "id": 2166, + "nodeType": "ParameterList", + "parameters": [], + "src": "9018:0:9" + }, + "scope": 2436, + "src": "8962:111:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2518 + ], + "body": { + "id": 2199, + "nodeType": "Block", + "src": "9199:291:9", + "statements": [ + { + "assignments": [ + 2181, + null + ], + "declarations": [ + { + "constant": false, + "id": 2181, + "mutability": "mutable", + "name": "newDefaultAdmin", + "nameLocation": "9218:15:9", + "nodeType": "VariableDeclaration", + "scope": 2199, + "src": "9210:23:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2180, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9210:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2184, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2182, + "name": "pendingDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2048, + "src": "9239:19:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$_t_uint48_$", + "typeString": "function () view returns (address,uint48)" + } + }, + "id": 2183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9239:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_uint48_$", + "typeString": "tuple(address,uint48)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9209:51:9" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2185, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "9274:10:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 2186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9274:12:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2187, + "name": "newDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2181, + "src": "9290:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9274:31:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2195, + "nodeType": "IfStatement", + "src": "9270:175:9", + "trueBody": { + "id": 2194, + "nodeType": "Block", + "src": "9307:138:9", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2190, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "9421:10:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 2191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9421:12:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2189, + "name": "AccessControlInvalidDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2448, + "src": "9388:32:9", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 2192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9388:46:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2193, + "nodeType": "RevertStatement", + "src": "9381:53:9" + } + ] + } + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2196, + "name": "_acceptDefaultAdminTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2244, + "src": "9454:27:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9454:29:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2198, + "nodeType": "ExpressionStatement", + "src": "9454:29:9" + } + ] + }, + "documentation": { + "id": 2177, + "nodeType": "StructuredDocumentation", + "src": "9079:62:9", + "text": " @inheritdoc IAccessControlDefaultAdminRules" + }, + "functionSelector": "cefc1429", + "id": 2200, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "acceptDefaultAdminTransfer", + "nameLocation": "9155:26:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2178, + "nodeType": "ParameterList", + "parameters": [], + "src": "9181:2:9" + }, + "returnParameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [], + "src": "9199:0:9" + }, + "scope": 2436, + "src": "9146:344:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2243, + "nodeType": "Block", + "src": "9674:418:9", + "statements": [ + { + "assignments": [ + 2205, + 2207 + ], + "declarations": [ + { + "constant": false, + "id": 2205, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "9693:8:9", + "nodeType": "VariableDeclaration", + "scope": 2243, + "src": "9685:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9685:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2207, + "mutability": "mutable", + "name": "schedule", + "nameLocation": "9710:8:9", + "nodeType": "VariableDeclaration", + "scope": 2243, + "src": "9703:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2206, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "9703:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "id": 2210, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2208, + "name": "pendingDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2048, + "src": "9722:19:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$_t_uint48_$", + "typeString": "function () view returns (address,uint48)" + } + }, + "id": 2209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9722:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_uint48_$", + "typeString": "tuple(address,uint48)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9684:59:9" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "9757:25:9", + "subExpression": { + "arguments": [ + { + "id": 2212, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "9773:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2211, + "name": "_isScheduleSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "9758:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint48_$returns$_t_bool_$", + "typeString": "function (uint48) pure returns (bool)" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9758:24:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 2218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "9786:29:9", + "subExpression": { + "arguments": [ + { + "id": 2216, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "9806:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2215, + "name": "_hasSchedulePassed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2435, + "src": "9787:18:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint48_$returns$_t_bool_$", + "typeString": "function (uint48) view returns (bool)" + } + }, + "id": 2217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9787:28:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9757:58:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2225, + "nodeType": "IfStatement", + "src": "9753:144:9", + "trueBody": { + "id": 2224, + "nodeType": "Block", + "src": "9817:80:9", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 2221, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "9877:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2220, + "name": "AccessControlEnforcedDefaultAdminDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2456, + "src": "9838:38:9", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint48_$returns$_t_error_$", + "typeString": "function (uint48) pure returns (error)" + } + }, + "id": 2222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9838:48:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2223, + "nodeType": "RevertStatement", + "src": "9831:55:9" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 2227, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "9918:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2228, + "name": "defaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "9938:12:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 2229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9938:14:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2226, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2001 + ], + "referencedDeclaration": 2001, + "src": "9906:11:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9906:47:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2231, + "nodeType": "ExpressionStatement", + "src": "9906:47:9" + }, + { + "expression": { + "arguments": [ + { + "id": 2233, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "9974:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2234, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2205, + "src": "9994:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2232, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1970 + ], + "referencedDeclaration": 1970, + "src": "9963:10:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 2235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9963:40:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2236, + "nodeType": "ExpressionStatement", + "src": "9963:40:9" + }, + { + "expression": { + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "10013:27:9", + "subExpression": { + "id": 2237, + "name": "_pendingDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1741, + "src": "10020:20:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2239, + "nodeType": "ExpressionStatement", + "src": "10013:27:9" + }, + { + "expression": { + "id": 2241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "10050:35:9", + "subExpression": { + "id": 2240, + "name": "_pendingDefaultAdminSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1743, + "src": "10057:28:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2242, + "nodeType": "ExpressionStatement", + "src": "10050:35:9" + } + ] + }, + "documentation": { + "id": 2201, + "nodeType": "StructuredDocumentation", + "src": "9496:117:9", + "text": " @dev See {acceptDefaultAdminTransfer}.\n Internal function without access restriction." + }, + "id": 2244, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_acceptDefaultAdminTransfer", + "nameLocation": "9627:27:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2202, + "nodeType": "ParameterList", + "parameters": [], + "src": "9654:2:9" + }, + "returnParameters": { + "id": 2203, + "nodeType": "ParameterList", + "parameters": [], + "src": "9674:0:9" + }, + "scope": 2436, + "src": "9618:474:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2524 + ], + "body": { + "id": 2257, + "nodeType": "Block", + "src": "10390:51:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2254, + "name": "newDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2247, + "src": "10425:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2253, + "name": "_changeDefaultAdminDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2287, + "src": "10400:24:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint48_$returns$__$", + "typeString": "function (uint48)" + } + }, + "id": 2255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10400:34:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2256, + "nodeType": "ExpressionStatement", + "src": "10400:34:9" + } + ] + }, + "documentation": { + "id": 2245, + "nodeType": "StructuredDocumentation", + "src": "10229:62:9", + "text": " @inheritdoc IAccessControlDefaultAdminRules" + }, + "functionSelector": "649a5ec7", + "id": 2258, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 2250, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "10370:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2251, + "kind": "modifierInvocation", + "modifierName": { + "id": 2249, + "name": "onlyRole", + "nameLocations": [ + "10361:8:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1233, + "src": "10361:8:9" + }, + "nodeType": "ModifierInvocation", + "src": "10361:28:9" + } + ], + "name": "changeDefaultAdminDelay", + "nameLocation": "10305:23:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2247, + "mutability": "mutable", + "name": "newDelay", + "nameLocation": "10336:8:9", + "nodeType": "VariableDeclaration", + "scope": 2258, + "src": "10329:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2246, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "10329:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "10328:17:9" + }, + "returnParameters": { + "id": 2252, + "nodeType": "ParameterList", + "parameters": [], + "src": "10390:0:9" + }, + "scope": 2436, + "src": "10296:145:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2286, + "nodeType": "Block", + "src": "10634:220:9", + "statements": [ + { + "assignments": [ + 2265 + ], + "declarations": [ + { + "constant": false, + "id": 2265, + "mutability": "mutable", + "name": "newSchedule", + "nameLocation": "10651:11:9", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "10644:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2264, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "10644:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "id": 2275, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 2268, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "10683:5:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10689:9:9", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "10683:15:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2266, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "10665:8:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$6491_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 2267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10674:8:9", + "memberName": "toUint48", + "nodeType": "MemberAccess", + "referencedDeclaration": 5491, + "src": "10665:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint48_$", + "typeString": "function (uint256) pure returns (uint48)" + } + }, + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10665:34:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "id": 2272, + "name": "newDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "10719:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2271, + "name": "_delayChangeWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2339, + "src": "10702:16:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint48_$returns$_t_uint48_$", + "typeString": "function (uint48) view returns (uint48)" + } + }, + "id": 2273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10702:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "10665:63:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10644:84:9" + }, + { + "expression": { + "arguments": [ + { + "id": 2277, + "name": "newDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "10755:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + { + "id": 2278, + "name": "newSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2265, + "src": "10765:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2276, + "name": "_setPendingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2408, + "src": "10738:16:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint48_$_t_uint48_$returns$__$", + "typeString": "function (uint48,uint48)" + } + }, + "id": 2279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10738:39:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2280, + "nodeType": "ExpressionStatement", + "src": "10738:39:9" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2282, + "name": "newDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "10825:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + { + "id": 2283, + "name": "newSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2265, + "src": "10835:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2281, + "name": "DefaultAdminDelayChangeScheduled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2473, + "src": "10792:32:9", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint48_$_t_uint48_$returns$__$", + "typeString": "function (uint48,uint48)" + } + }, + "id": 2284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10792:55:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2285, + "nodeType": "EmitStatement", + "src": "10787:60:9" + } + ] + }, + "documentation": { + "id": 2259, + "nodeType": "StructuredDocumentation", + "src": "10447:114:9", + "text": " @dev See {changeDefaultAdminDelay}.\n Internal function without access restriction." + }, + "id": 2287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_changeDefaultAdminDelay", + "nameLocation": "10575:24:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "newDelay", + "nameLocation": "10607:8:9", + "nodeType": "VariableDeclaration", + "scope": 2287, + "src": "10600:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2260, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "10600:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "10599:17:9" + }, + "returnParameters": { + "id": 2263, + "nodeType": "ParameterList", + "parameters": [], + "src": "10634:0:9" + }, + "scope": 2436, + "src": "10566:288:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2528 + ], + "body": { + "id": 2297, + "nodeType": "Block", + "src": "11008:45:9", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2294, + "name": "_rollbackDefaultAdminDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2308, + "src": "11018:26:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11018:28:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2296, + "nodeType": "ExpressionStatement", + "src": "11018:28:9" + } + ] + }, + "documentation": { + "id": 2288, + "nodeType": "StructuredDocumentation", + "src": "10860:62:9", + "text": " @inheritdoc IAccessControlDefaultAdminRules" + }, + "functionSelector": "0aa6220b", + "id": 2298, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 2291, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "10988:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2292, + "kind": "modifierInvocation", + "modifierName": { + "id": 2290, + "name": "onlyRole", + "nameLocations": [ + "10979:8:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1233, + "src": "10979:8:9" + }, + "nodeType": "ModifierInvocation", + "src": "10979:28:9" + } + ], + "name": "rollbackDefaultAdminDelay", + "nameLocation": "10936:25:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2289, + "nodeType": "ParameterList", + "parameters": [], + "src": "10961:2:9" + }, + "returnParameters": { + "id": 2293, + "nodeType": "ParameterList", + "parameters": [], + "src": "11008:0:9" + }, + "scope": 2436, + "src": "10927:126:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2307, + "nodeType": "Block", + "src": "11235:39:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "30", + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11262:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 2304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11265:1:9", + "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" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2302, + "name": "_setPendingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2408, + "src": "11245:16:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint48_$_t_uint48_$returns$__$", + "typeString": "function (uint48,uint48)" + } + }, + "id": 2305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11245:22:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2306, + "nodeType": "ExpressionStatement", + "src": "11245:22:9" + } + ] + }, + "documentation": { + "id": 2299, + "nodeType": "StructuredDocumentation", + "src": "11059:116:9", + "text": " @dev See {rollbackDefaultAdminDelay}.\n Internal function without access restriction." + }, + "id": 2308, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_rollbackDefaultAdminDelay", + "nameLocation": "11189:26:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2300, + "nodeType": "ParameterList", + "parameters": [], + "src": "11215:2:9" + }, + "returnParameters": { + "id": 2301, + "nodeType": "ParameterList", + "parameters": [], + "src": "11235:0:9" + }, + "scope": 2436, + "src": "11180:94:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2338, + "nodeType": "Block", + "src": "11703:1167:9", + "statements": [ + { + "assignments": [ + 2317 + ], + "declarations": [ + { + "constant": false, + "id": 2317, + "mutability": "mutable", + "name": "currentDelay", + "nameLocation": "11720:12:9", + "nodeType": "VariableDeclaration", + "scope": 2338, + "src": "11713:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2316, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "11713:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "id": 2320, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2318, + "name": "defaultAdminDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2071, + "src": "11735:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint48_$", + "typeString": "function () view returns (uint48)" + } + }, + "id": 2319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11735:19:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11713:41:9" + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2321, + "name": "newDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "12673:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2322, + "name": "currentDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2317, + "src": "12684:12:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "12673:23:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "id": 2335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2333, + "name": "currentDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2317, + "src": "12840:12:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2334, + "name": "newDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "12855:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "12840:23:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12673:190:9", + "trueExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 2328, + "name": "newDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "12731:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2329, + "name": "defaultAdminDelayIncreaseWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "12741:29:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint48_$", + "typeString": "function () view returns (uint48)" + } + }, + "id": 2330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12741:31:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "expression": { + "id": 2326, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4736, + "src": "12722:4:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$4736_$", + "typeString": "type(library Math)" + } + }, + "id": 2327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12727:3:9", + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 3887, + "src": "12722:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12722:51:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12715:6:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 2324, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "12715:6:9", + "typeDescriptions": {} + } + }, + "id": 2332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12715:59:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "functionReturnParameters": 2315, + "id": 2337, + "nodeType": "Return", + "src": "12654:209:9" + } + ] + }, + "documentation": { + "id": 2309, + "nodeType": "StructuredDocumentation", + "src": "11280:336:9", + "text": " @dev Returns the amount of seconds to wait after the `newDelay` will\n become the new {defaultAdminDelay}.\n The value returned guarantees that if the delay is reduced, it will go into effect\n after a wait that honors the previously set delay.\n See {defaultAdminDelayIncreaseWait}." + }, + "id": 2339, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_delayChangeWait", + "nameLocation": "11630:16:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "newDelay", + "nameLocation": "11654:8:9", + "nodeType": "VariableDeclaration", + "scope": 2339, + "src": "11647:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2310, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "11647:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "11646:17:9" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2339, + "src": "11695:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2313, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "11695:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "11694:8:9" + }, + "scope": 2436, + "src": "11621:1249:9", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2368, + "nodeType": "Block", + "src": "13141:446:9", + "statements": [ + { + "assignments": [ + null, + 2348 + ], + "declarations": [ + null, + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "oldSchedule", + "nameLocation": "13161:11:9", + "nodeType": "VariableDeclaration", + "scope": 2368, + "src": "13154:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2347, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "13154:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "id": 2351, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2349, + "name": "pendingDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2048, + "src": "13176:19:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$_t_uint48_$", + "typeString": "function () view returns (address,uint48)" + } + }, + "id": 2350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13176:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_uint48_$", + "typeString": "tuple(address,uint48)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13151:46:9" + }, + { + "expression": { + "id": 2354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2352, + "name": "_pendingDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1741, + "src": "13208:20:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2353, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2342, + "src": "13231:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13208:31:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2355, + "nodeType": "ExpressionStatement", + "src": "13208:31:9" + }, + { + "expression": { + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2356, + "name": "_pendingDefaultAdminSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1743, + "src": "13249:28:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2357, + "name": "newSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2344, + "src": "13280:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "13249:42:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 2359, + "nodeType": "ExpressionStatement", + "src": "13249:42:9" + }, + { + "condition": { + "arguments": [ + { + "id": 2361, + "name": "oldSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2348, + "src": "13418:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2360, + "name": "_isScheduleSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "13403:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint48_$returns$_t_bool_$", + "typeString": "function (uint48) pure returns (bool)" + } + }, + "id": 2362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13403:27:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2367, + "nodeType": "IfStatement", + "src": "13399:182:9", + "trueBody": { + "id": 2366, + "nodeType": "Block", + "src": "13432:149:9", + "statements": [ + { + "eventCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2363, + "name": "DefaultAdminTransferCanceled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2466, + "src": "13540:28:9", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13540:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2365, + "nodeType": "EmitStatement", + "src": "13535:35:9" + } + ] + } + } + ] + }, + "documentation": { + "id": 2340, + "nodeType": "StructuredDocumentation", + "src": "12917:140:9", + "text": " @dev Setter of the tuple for pending admin and its schedule.\n May emit a DefaultAdminTransferCanceled event." + }, + "id": 2369, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setPendingDefaultAdmin", + "nameLocation": "13071:23:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2342, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "13103:8:9", + "nodeType": "VariableDeclaration", + "scope": 2369, + "src": "13095:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13095:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2344, + "mutability": "mutable", + "name": "newSchedule", + "nameLocation": "13120:11:9", + "nodeType": "VariableDeclaration", + "scope": 2369, + "src": "13113:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2343, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "13113:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "13094:38:9" + }, + "returnParameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [], + "src": "13141:0:9" + }, + "scope": 2436, + "src": "13062:525:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2407, + "nodeType": "Block", + "src": "13812:514:9", + "statements": [ + { + "assignments": [ + 2378 + ], + "declarations": [ + { + "constant": false, + "id": 2378, + "mutability": "mutable", + "name": "oldSchedule", + "nameLocation": "13829:11:9", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "13822:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2377, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "13822:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "id": 2380, + "initialValue": { + "id": 2379, + "name": "_pendingDelaySchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1751, + "src": "13843:21:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13822:42:9" + }, + { + "condition": { + "arguments": [ + { + "id": 2382, + "name": "oldSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2378, + "src": "13894:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2381, + "name": "_isScheduleSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "13879:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint48_$returns$_t_bool_$", + "typeString": "function (uint48) pure returns (bool)" + } + }, + "id": 2383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13879:27:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2398, + "nodeType": "IfStatement", + "src": "13875:365:9", + "trueBody": { + "id": 2397, + "nodeType": "Block", + "src": "13908:332:9", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 2385, + "name": "oldSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2378, + "src": "13945:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 2384, + "name": "_hasSchedulePassed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2435, + "src": "13926:18:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint48_$returns$_t_bool_$", + "typeString": "function (uint48) view returns (bool)" + } + }, + "id": 2386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13926:31:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2395, + "nodeType": "Block", + "src": "14074:156:9", + "statements": [ + { + "eventCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2392, + "name": "DefaultAdminDelayChangeCanceled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "14182:31:9", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14182:33:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2394, + "nodeType": "EmitStatement", + "src": "14177:38:9" + } + ] + }, + "id": 2396, + "nodeType": "IfStatement", + "src": "13922:308:9", + "trueBody": { + "id": 2391, + "nodeType": "Block", + "src": "13959:109:9", + "statements": [ + { + "expression": { + "id": 2389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2387, + "name": "_currentDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1745, + "src": "14024:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2388, + "name": "_pendingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "14040:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "14024:29:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 2390, + "nodeType": "ExpressionStatement", + "src": "14024:29:9" + } + ] + } + } + ] + } + }, + { + "expression": { + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2399, + "name": "_pendingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "14250:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2400, + "name": "newDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2372, + "src": "14266:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "14250:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 2402, + "nodeType": "ExpressionStatement", + "src": "14250:24:9" + }, + { + "expression": { + "id": 2405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2403, + "name": "_pendingDelaySchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1751, + "src": "14284:21:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2404, + "name": "newSchedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2374, + "src": "14308:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "14284:35:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 2406, + "nodeType": "ExpressionStatement", + "src": "14284:35:9" + } + ] + }, + "documentation": { + "id": 2370, + "nodeType": "StructuredDocumentation", + "src": "13593:143:9", + "text": " @dev Setter of the tuple for pending delay and its schedule.\n May emit a DefaultAdminDelayChangeCanceled event." + }, + "id": 2408, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setPendingDelay", + "nameLocation": "13750:16:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2372, + "mutability": "mutable", + "name": "newDelay", + "nameLocation": "13774:8:9", + "nodeType": "VariableDeclaration", + "scope": 2408, + "src": "13767:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2371, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "13767:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2374, + "mutability": "mutable", + "name": "newSchedule", + "nameLocation": "13791:11:9", + "nodeType": "VariableDeclaration", + "scope": 2408, + "src": "13784:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2373, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "13784:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "13766:37:9" + }, + "returnParameters": { + "id": 2376, + "nodeType": "ParameterList", + "parameters": [], + "src": "13812:0:9" + }, + "scope": 2436, + "src": "13741:585:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2420, + "nodeType": "Block", + "src": "14540:37:9", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "id": 2418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2416, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2411, + "src": "14557:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14569:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14557:13:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2415, + "id": 2419, + "nodeType": "Return", + "src": "14550:20:9" + } + ] + }, + "documentation": { + "id": 2409, + "nodeType": "StructuredDocumentation", + "src": "14373:93:9", + "text": " @dev Defines if an `schedule` is considered set. For consistency purposes." + }, + "id": 2421, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isScheduleSet", + "nameLocation": "14480:14:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2412, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2411, + "mutability": "mutable", + "name": "schedule", + "nameLocation": "14502:8:9", + "nodeType": "VariableDeclaration", + "scope": 2421, + "src": "14495:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2410, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14495:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "14494:17:9" + }, + "returnParameters": { + "id": 2415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2414, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2421, + "src": "14534:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2413, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14534:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "14533:6:9" + }, + "scope": 2436, + "src": "14471:106:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2434, + "nodeType": "Block", + "src": "14757:50:9", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2429, + "name": "schedule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2424, + "src": "14774:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 2430, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "14785:5:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14791:9:9", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "14785:15:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14774:26:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2428, + "id": 2433, + "nodeType": "Return", + "src": "14767:33:9" + } + ] + }, + "documentation": { + "id": 2422, + "nodeType": "StructuredDocumentation", + "src": "14583:96:9", + "text": " @dev Defines if an `schedule` is considered passed. For consistency purposes." + }, + "id": 2435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_hasSchedulePassed", + "nameLocation": "14693:18:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2424, + "mutability": "mutable", + "name": "schedule", + "nameLocation": "14719:8:9", + "nodeType": "VariableDeclaration", + "scope": 2435, + "src": "14712:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2423, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14712:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "14711:17:9" + }, + "returnParameters": { + "id": 2428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2427, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2435, + "src": "14751:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2426, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14751:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "14750:6:9" + }, + "scope": 2436, + "src": "14684:123:9", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "scope": 2437, + "src": "1697:13112:9", + "usedErrors": [ + 1498, + 1501, + 2448, + 2451, + 2456, + 4746 + ], + "usedEvents": [ + 1510, + 1519, + 1528, + 2463, + 2466, + 2473, + 2476 + ] + } + ], + "src": "136:14674:9" + }, + "id": 9 + }, + "@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol", + "exportedSymbols": { + "IAccessControl": [ + 1571 + ], + "IAccessControlDefaultAdminRules": [ + 2535 + ] + }, + "id": 2536, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2438, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "137:24:10" + }, + { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "file": "../IAccessControl.sol", + "id": 2440, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2536, + "sourceUnit": 1572, + "src": "163:53:10", + "symbolAliases": [ + { + "foreign": { + "id": 2439, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1571, + "src": "171:14:10", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2442, + "name": "IAccessControl", + "nameLocations": [ + "370:14:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1571, + "src": "370:14:10" + }, + "id": 2443, + "nodeType": "InheritanceSpecifier", + "src": "370:14:10" + } + ], + "canonicalName": "IAccessControlDefaultAdminRules", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2441, + "nodeType": "StructuredDocumentation", + "src": "218:106:10", + "text": " @dev External interface of AccessControlDefaultAdminRules declared to support ERC165 detection." + }, + "fullyImplemented": false, + "id": 2535, + "linearizedBaseContracts": [ + 2535, + 1571 + ], + "name": "IAccessControlDefaultAdminRules", + "nameLocation": "335:31:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2444, + "nodeType": "StructuredDocumentation", + "src": "391:75:10", + "text": " @dev The new default admin is not a valid default admin." + }, + "errorSelector": "c22c8022", + "id": 2448, + "name": "AccessControlInvalidDefaultAdmin", + "nameLocation": "477:32:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2447, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2446, + "mutability": "mutable", + "name": "defaultAdmin", + "nameLocation": "518:12:10", + "nodeType": "VariableDeclaration", + "scope": 2448, + "src": "510:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2445, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "510:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "509:22:10" + }, + "src": "471:61:10" + }, + { + "documentation": { + "id": 2449, + "nodeType": "StructuredDocumentation", + "src": "538:299:10", + "text": " @dev At least one of the following rules was violated:\n - The `DEFAULT_ADMIN_ROLE` must only be managed by itself.\n - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time.\n - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps." + }, + "errorSelector": "3fc3c27a", + "id": 2451, + "name": "AccessControlEnforcedDefaultAdminRules", + "nameLocation": "848:38:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2450, + "nodeType": "ParameterList", + "parameters": [], + "src": "886:2:10" + }, + "src": "842:47:10" + }, + { + "documentation": { + "id": 2452, + "nodeType": "StructuredDocumentation", + "src": "895:221:10", + "text": " @dev The delay for transferring the default admin delay is enforced and\n the operation must wait until `schedule`.\n NOTE: `schedule` can be 0 indicating there's no transfer scheduled." + }, + "errorSelector": "19ca5ebb", + "id": 2456, + "name": "AccessControlEnforcedDefaultAdminDelay", + "nameLocation": "1127:38:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "schedule", + "nameLocation": "1173:8:10", + "nodeType": "VariableDeclaration", + "scope": 2456, + "src": "1166:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2453, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "1166:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "1165:17:10" + }, + "src": "1121:62:10" + }, + { + "anonymous": false, + "documentation": { + "id": 2457, + "nodeType": "StructuredDocumentation", + "src": "1189:232:10", + "text": " @dev Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next\n address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule`\n passes." + }, + "eventSelector": "3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6", + "id": 2463, + "name": "DefaultAdminTransferScheduled", + "nameLocation": "1432:29:10", + "nodeType": "EventDefinition", + "parameters": { + "id": 2462, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2459, + "indexed": true, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "1478:8:10", + "nodeType": "VariableDeclaration", + "scope": 2463, + "src": "1462:24:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2458, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1462:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2461, + "indexed": false, + "mutability": "mutable", + "name": "acceptSchedule", + "nameLocation": "1495:14:10", + "nodeType": "VariableDeclaration", + "scope": 2463, + "src": "1488:21:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2460, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "1488:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "1461:49:10" + }, + "src": "1426:85:10" + }, + { + "anonymous": false, + "documentation": { + "id": 2464, + "nodeType": "StructuredDocumentation", + "src": "1517:123:10", + "text": " @dev Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule." + }, + "eventSelector": "8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109", + "id": 2466, + "name": "DefaultAdminTransferCanceled", + "nameLocation": "1651:28:10", + "nodeType": "EventDefinition", + "parameters": { + "id": 2465, + "nodeType": "ParameterList", + "parameters": [], + "src": "1679:2:10" + }, + "src": "1645:37:10" + }, + { + "anonymous": false, + "documentation": { + "id": 2467, + "nodeType": "StructuredDocumentation", + "src": "1688:201:10", + "text": " @dev Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next\n delay to be applied between default admin transfer after `effectSchedule` has passed." + }, + "eventSelector": "f1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b", + "id": 2473, + "name": "DefaultAdminDelayChangeScheduled", + "nameLocation": "1900:32:10", + "nodeType": "EventDefinition", + "parameters": { + "id": 2472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2469, + "indexed": false, + "mutability": "mutable", + "name": "newDelay", + "nameLocation": "1940:8:10", + "nodeType": "VariableDeclaration", + "scope": 2473, + "src": "1933:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2468, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "1933:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2471, + "indexed": false, + "mutability": "mutable", + "name": "effectSchedule", + "nameLocation": "1957:14:10", + "nodeType": "VariableDeclaration", + "scope": 2473, + "src": "1950:21:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2470, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "1950:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "1932:40:10" + }, + "src": "1894:79:10" + }, + { + "anonymous": false, + "documentation": { + "id": 2474, + "nodeType": "StructuredDocumentation", + "src": "1979:103:10", + "text": " @dev Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass." + }, + "eventSelector": "2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5", + "id": 2476, + "name": "DefaultAdminDelayChangeCanceled", + "nameLocation": "2093:31:10", + "nodeType": "EventDefinition", + "parameters": { + "id": 2475, + "nodeType": "ParameterList", + "parameters": [], + "src": "2124:2:10" + }, + "src": "2087:40:10" + }, + { + "documentation": { + "id": 2477, + "nodeType": "StructuredDocumentation", + "src": "2133:87:10", + "text": " @dev Returns the address of the current `DEFAULT_ADMIN_ROLE` holder." + }, + "functionSelector": "84ef8ffc", + "id": 2482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "defaultAdmin", + "nameLocation": "2234:12:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2478, + "nodeType": "ParameterList", + "parameters": [], + "src": "2246:2:10" + }, + "returnParameters": { + "id": 2481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2480, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2482, + "src": "2272:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2272:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2271:9:10" + }, + "scope": 2535, + "src": "2225:56:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "2287:443:10", + "text": " @dev Returns a tuple of a `newAdmin` and an accept schedule.\n After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role\n by calling {acceptDefaultAdminTransfer}, completing the role transfer.\n A zero value only in `acceptSchedule` indicates no pending admin transfer.\n NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced." + }, + "functionSelector": "cf6eefb7", + "id": 2490, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "pendingDefaultAdmin", + "nameLocation": "2744:19:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2484, + "nodeType": "ParameterList", + "parameters": [], + "src": "2763:2:10" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2486, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "2797:8:10", + "nodeType": "VariableDeclaration", + "scope": 2490, + "src": "2789:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2789:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "acceptSchedule", + "nameLocation": "2814:14:10", + "nodeType": "VariableDeclaration", + "scope": 2490, + "src": "2807:21:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2487, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "2807:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "2788:41:10" + }, + "scope": 2535, + "src": "2735:95:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2491, + "nodeType": "StructuredDocumentation", + "src": "2836:451:10", + "text": " @dev Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started.\n This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set\n the acceptance schedule.\n NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this\n function returns the new delay. See {changeDefaultAdminDelay}." + }, + "functionSelector": "cc8463c8", + "id": 2496, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "defaultAdminDelay", + "nameLocation": "3301:17:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2492, + "nodeType": "ParameterList", + "parameters": [], + "src": "3318:2:10" + }, + "returnParameters": { + "id": 2495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2494, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2496, + "src": "3344:6:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2493, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "3344:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "3343:8:10" + }, + "scope": 2535, + "src": "3292:60:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2497, + "nodeType": "StructuredDocumentation", + "src": "3358:482:10", + "text": " @dev Returns a tuple of `newDelay` and an effect schedule.\n After the `schedule` passes, the `newDelay` will get into effect immediately for every\n new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}.\n A zero value only in `effectSchedule` indicates no pending delay change.\n NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay}\n will be zero after the effect schedule." + }, + "functionSelector": "a1eda53c", + "id": 2504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "pendingDefaultAdminDelay", + "nameLocation": "3854:24:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2498, + "nodeType": "ParameterList", + "parameters": [], + "src": "3878:2:10" + }, + "returnParameters": { + "id": 2503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2500, + "mutability": "mutable", + "name": "newDelay", + "nameLocation": "3911:8:10", + "nodeType": "VariableDeclaration", + "scope": 2504, + "src": "3904:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2499, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "3904:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "effectSchedule", + "nameLocation": "3928:14:10", + "nodeType": "VariableDeclaration", + "scope": 2504, + "src": "3921:21:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2501, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "3921:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "3903:40:10" + }, + "scope": 2535, + "src": "3845:99:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2505, + "nodeType": "StructuredDocumentation", + "src": "3950:332:10", + "text": " @dev Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance\n after the current timestamp plus a {defaultAdminDelay}.\n Requirements:\n - Only can be called by the current {defaultAdmin}.\n Emits a DefaultAdminRoleChangeStarted event." + }, + "functionSelector": "634e93da", + "id": 2510, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "beginDefaultAdminTransfer", + "nameLocation": "4296:25:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2507, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "4330:8:10", + "nodeType": "VariableDeclaration", + "scope": 2510, + "src": "4322:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4322:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4321:18:10" + }, + "returnParameters": { + "id": 2509, + "nodeType": "ParameterList", + "parameters": [], + "src": "4348:0:10" + }, + "scope": 2535, + "src": "4287:62:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2511, + "nodeType": "StructuredDocumentation", + "src": "4355:362:10", + "text": " @dev Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}.\n A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function.\n Requirements:\n - Only can be called by the current {defaultAdmin}.\n May emit a DefaultAdminTransferCanceled event." + }, + "functionSelector": "d602b9fd", + "id": 2514, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "cancelDefaultAdminTransfer", + "nameLocation": "4731:26:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2512, + "nodeType": "ParameterList", + "parameters": [], + "src": "4757:2:10" + }, + "returnParameters": { + "id": 2513, + "nodeType": "ParameterList", + "parameters": [], + "src": "4768:0:10" + }, + "scope": 2535, + "src": "4722:47:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2515, + "nodeType": "StructuredDocumentation", + "src": "4775:539:10", + "text": " @dev Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}.\n After calling the function:\n - `DEFAULT_ADMIN_ROLE` should be granted to the caller.\n - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder.\n - {pendingDefaultAdmin} should be reset to zero values.\n Requirements:\n - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`.\n - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed." + }, + "functionSelector": "cefc1429", + "id": 2518, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "acceptDefaultAdminTransfer", + "nameLocation": "5328:26:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2516, + "nodeType": "ParameterList", + "parameters": [], + "src": "5354:2:10" + }, + "returnParameters": { + "id": 2517, + "nodeType": "ParameterList", + "parameters": [], + "src": "5365:0:10" + }, + "scope": 2535, + "src": "5319:47:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2519, + "nodeType": "StructuredDocumentation", + "src": "5372:1410:10", + "text": " @dev Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting\n into effect after the current timestamp plus a {defaultAdminDelay}.\n This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this\n method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay}\n set before calling.\n The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then\n calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin}\n complete transfer (including acceptance).\n The schedule is designed for two scenarios:\n - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by\n {defaultAdminDelayIncreaseWait}.\n - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`.\n A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change.\n Requirements:\n - Only can be called by the current {defaultAdmin}.\n Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event." + }, + "functionSelector": "649a5ec7", + "id": 2524, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "changeDefaultAdminDelay", + "nameLocation": "6796:23:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2521, + "mutability": "mutable", + "name": "newDelay", + "nameLocation": "6827:8:10", + "nodeType": "VariableDeclaration", + "scope": 2524, + "src": "6820:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2520, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "6820:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "6819:17:10" + }, + "returnParameters": { + "id": 2523, + "nodeType": "ParameterList", + "parameters": [], + "src": "6845:0:10" + }, + "scope": 2535, + "src": "6787:59:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2525, + "nodeType": "StructuredDocumentation", + "src": "6852:229:10", + "text": " @dev Cancels a scheduled {defaultAdminDelay} change.\n Requirements:\n - Only can be called by the current {defaultAdmin}.\n May emit a DefaultAdminDelayChangeCanceled event." + }, + "functionSelector": "0aa6220b", + "id": 2528, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "rollbackDefaultAdminDelay", + "nameLocation": "7095:25:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2526, + "nodeType": "ParameterList", + "parameters": [], + "src": "7120:2:10" + }, + "returnParameters": { + "id": 2527, + "nodeType": "ParameterList", + "parameters": [], + "src": "7131:0:10" + }, + "scope": 2535, + "src": "7086:46:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2529, + "nodeType": "StructuredDocumentation", + "src": "7138:952:10", + "text": " @dev Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay})\n to take effect. Default to 5 days.\n When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with\n the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds)\n that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can\n be overrode for a custom {defaultAdminDelay} increase scheduling.\n IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise,\n there's a risk of setting a high new delay that goes into effect almost immediately without the\n possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds)." + }, + "functionSelector": "022d63fb", + "id": 2534, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "defaultAdminDelayIncreaseWait", + "nameLocation": "8104:29:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2530, + "nodeType": "ParameterList", + "parameters": [], + "src": "8133:2:10" + }, + "returnParameters": { + "id": 2533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2532, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2534, + "src": "8159:6:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 2531, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "8159:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "8158:8:10" + }, + "scope": 2535, + "src": "8095:72:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2536, + "src": "325:7844:10", + "usedErrors": [ + 1498, + 1501, + 2448, + 2451, + 2456 + ], + "usedEvents": [ + 1510, + 1519, + 1528, + 2463, + 2466, + 2473, + 2476 + ] + } + ], + "src": "137:8033:10" + }, + "id": 10 + }, + "@openzeppelin/contracts/interfaces/IERC1967.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC1967.sol", + "exportedSymbols": { + "IERC1967": [ + 2556 + ] + }, + "id": 2557, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2537, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:11" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1967", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2538, + "nodeType": "StructuredDocumentation", + "src": "133:101:11", + "text": " @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC." + }, + "fullyImplemented": true, + "id": 2556, + "linearizedBaseContracts": [ + 2556 + ], + "name": "IERC1967", + "nameLocation": "245:8:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 2539, + "nodeType": "StructuredDocumentation", + "src": "260:68:11", + "text": " @dev Emitted when the implementation is upgraded." + }, + "eventSelector": "bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "id": 2543, + "name": "Upgraded", + "nameLocation": "339:8:11", + "nodeType": "EventDefinition", + "parameters": { + "id": 2542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2541, + "indexed": true, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "364:14:11", + "nodeType": "VariableDeclaration", + "scope": 2543, + "src": "348:30:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "348:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "347:32:11" + }, + "src": "333:47:11" + }, + { + "anonymous": false, + "documentation": { + "id": 2544, + "nodeType": "StructuredDocumentation", + "src": "386:67:11", + "text": " @dev Emitted when the admin account has changed." + }, + "eventSelector": "7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f", + "id": 2550, + "name": "AdminChanged", + "nameLocation": "464:12:11", + "nodeType": "EventDefinition", + "parameters": { + "id": 2549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2546, + "indexed": false, + "mutability": "mutable", + "name": "previousAdmin", + "nameLocation": "485:13:11", + "nodeType": "VariableDeclaration", + "scope": 2550, + "src": "477:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "477:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2548, + "indexed": false, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "508:8:11", + "nodeType": "VariableDeclaration", + "scope": 2550, + "src": "500:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "500:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "476:41:11" + }, + "src": "458:60:11" + }, + { + "anonymous": false, + "documentation": { + "id": 2551, + "nodeType": "StructuredDocumentation", + "src": "524:59:11", + "text": " @dev Emitted when the beacon is changed." + }, + "eventSelector": "1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e", + "id": 2555, + "name": "BeaconUpgraded", + "nameLocation": "594:14:11", + "nodeType": "EventDefinition", + "parameters": { + "id": 2554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2553, + "indexed": true, + "mutability": "mutable", + "name": "beacon", + "nameLocation": "625:6:11", + "nodeType": "VariableDeclaration", + "scope": 2555, + "src": "609:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2552, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "609:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "608:24:11" + }, + "src": "588:45:11" + } + ], + "scope": 2557, + "src": "235:400:11", + "usedErrors": [], + "usedEvents": [ + 2543, + 2550, + 2555 + ] + } + ], + "src": "107:529:11" + }, + "id": 11 + }, + "@openzeppelin/contracts/interfaces/IERC5313.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC5313.sol", + "exportedSymbols": { + "IERC5313": [ + 2566 + ] + }, + "id": 2567, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2558, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:12" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC5313", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2559, + "nodeType": "StructuredDocumentation", + "src": "133:164:12", + "text": " @dev Interface for the Light Contract Ownership Standard.\n A standardized minimal interface required to identify an account that controls a contract" + }, + "fullyImplemented": false, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "IERC5313", + "nameLocation": "308:8:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2560, + "nodeType": "StructuredDocumentation", + "src": "323:54:12", + "text": " @dev Gets the address of the owner." + }, + "functionSelector": "8da5cb5b", + "id": 2565, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "391:5:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2561, + "nodeType": "ParameterList", + "parameters": [], + "src": "396:2:12" + }, + "returnParameters": { + "id": 2564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2563, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "422:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2562, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "422:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "421:9:12" + }, + "scope": 2566, + "src": "382:49:12", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2567, + "src": "298:135:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "107:327:12" + }, + "id": 12 + }, + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", + "exportedSymbols": { + "ERC1967Proxy": [ + 2604 + ], + "ERC1967Utils": [ + 2907 + ], + "Proxy": [ + 2943 + ] + }, + "id": 2605, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2568, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "114:24:13" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/Proxy.sol", + "file": "../Proxy.sol", + "id": 2570, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2605, + "sourceUnit": 2944, + "src": "140:35:13", + "symbolAliases": [ + { + "foreign": { + "id": 2569, + "name": "Proxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2943, + "src": "148:5:13", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol", + "file": "./ERC1967Utils.sol", + "id": 2572, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2605, + "sourceUnit": 2908, + "src": "176:48:13", + "symbolAliases": [ + { + "foreign": { + "id": 2571, + "name": "ERC1967Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2907, + "src": "184:12:13", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2574, + "name": "Proxy", + "nameLocations": [ + "624:5:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2943, + "src": "624:5:13" + }, + "id": 2575, + "nodeType": "InheritanceSpecifier", + "src": "624:5:13" + } + ], + "canonicalName": "ERC1967Proxy", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2573, + "nodeType": "StructuredDocumentation", + "src": "226:372:13", + "text": " @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy." + }, + "fullyImplemented": true, + "id": 2604, + "linearizedBaseContracts": [ + 2604, + 2943 + ], + "name": "ERC1967Proxy", + "nameLocation": "608:12:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2590, + "nodeType": "Block", + "src": "1144:69:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2586, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2578, + "src": "1184:14:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2587, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "1200:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2583, + "name": "ERC1967Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2907, + "src": "1154:12:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$2907_$", + "typeString": "type(library ERC1967Utils)" + } + }, + "id": 2585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1167:16:13", + "memberName": "upgradeToAndCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 2726, + "src": "1154:29:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory)" + } + }, + "id": 2588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1154:52:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2589, + "nodeType": "ExpressionStatement", + "src": "1154:52:13" + } + ] + }, + "documentation": { + "id": 2576, + "nodeType": "StructuredDocumentation", + "src": "636:439:13", + "text": " @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an\n encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\n Requirements:\n - If `data` is empty, `msg.value` must be zero." + }, + "id": 2591, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2578, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "1100:14:13", + "nodeType": "VariableDeclaration", + "scope": 2591, + "src": "1092:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1092:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "_data", + "nameLocation": "1129:5:13", + "nodeType": "VariableDeclaration", + "scope": 2591, + "src": "1116:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2579, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1116:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1091:44:13" + }, + "returnParameters": { + "id": 2582, + "nodeType": "ParameterList", + "parameters": [], + "src": "1144:0:13" + }, + "scope": 2604, + "src": "1080:133:13", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 2924 + ], + "body": { + "id": 2602, + "nodeType": "Block", + "src": "1657:56:13", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2598, + "name": "ERC1967Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2907, + "src": "1674:12:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$2907_$", + "typeString": "type(library ERC1967Utils)" + } + }, + "id": 2599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1687:17:13", + "memberName": "getImplementation", + "nodeType": "MemberAccess", + "referencedDeclaration": 2665, + "src": "1674:30:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 2600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1674:32:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2597, + "id": 2601, + "nodeType": "Return", + "src": "1667:39:13" + } + ] + }, + "documentation": { + "id": 2592, + "nodeType": "StructuredDocumentation", + "src": "1219:357:13", + "text": " @dev Returns the current implementation address.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`" + }, + "id": 2603, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_implementation", + "nameLocation": "1590:15:13", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2594, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1630:8:13" + }, + "parameters": { + "id": 2593, + "nodeType": "ParameterList", + "parameters": [], + "src": "1605:2:13" + }, + "returnParameters": { + "id": 2597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2596, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2603, + "src": "1648:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1648:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1647:9:13" + }, + "scope": 2604, + "src": "1581:132:13", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 2605, + "src": "599:1116:13", + "usedErrors": [ + 2639, + 2652, + 3149, + 3152 + ], + "usedEvents": [ + 2618 + ] + } + ], + "src": "114:1602:13" + }, + "id": 13 + }, + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol", + "exportedSymbols": { + "Address": [ + 3389 + ], + "ERC1967Utils": [ + 2907 + ], + "IBeacon": [ + 2953 + ], + "StorageSlot": [ + 3646 + ] + }, + "id": 2908, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2606, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "114:24:14" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/beacon/IBeacon.sol", + "file": "../beacon/IBeacon.sol", + "id": 2608, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2908, + "sourceUnit": 2954, + "src": "140:46:14", + "symbolAliases": [ + { + "foreign": { + "id": 2607, + "name": "IBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "148:7:14", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "file": "../../utils/Address.sol", + "id": 2610, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2908, + "sourceUnit": 3390, + "src": "187:48:14", + "symbolAliases": [ + { + "foreign": { + "id": 2609, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3389, + "src": "195:7:14", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", + "file": "../../utils/StorageSlot.sol", + "id": 2612, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2908, + "sourceUnit": 3647, + "src": "236:56:14", + "symbolAliases": [ + { + "foreign": { + "id": 2611, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3646, + "src": "244:11:14", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ERC1967Utils", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2613, + "nodeType": "StructuredDocumentation", + "src": "294:154:14", + "text": " @dev This abstract contract provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots." + }, + "fullyImplemented": true, + "id": 2907, + "linearizedBaseContracts": [ + 2907 + ], + "name": "ERC1967Utils", + "nameLocation": "457:12:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 2614, + "nodeType": "StructuredDocumentation", + "src": "660:68:14", + "text": " @dev Emitted when the implementation is upgraded." + }, + "eventSelector": "bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "id": 2618, + "name": "Upgraded", + "nameLocation": "739:8:14", + "nodeType": "EventDefinition", + "parameters": { + "id": 2617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2616, + "indexed": true, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "764:14:14", + "nodeType": "VariableDeclaration", + "scope": 2618, + "src": "748:30:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2615, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "748:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "747:32:14" + }, + "src": "733:47:14" + }, + { + "anonymous": false, + "documentation": { + "id": 2619, + "nodeType": "StructuredDocumentation", + "src": "786:67:14", + "text": " @dev Emitted when the admin account has changed." + }, + "eventSelector": "7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f", + "id": 2625, + "name": "AdminChanged", + "nameLocation": "864:12:14", + "nodeType": "EventDefinition", + "parameters": { + "id": 2624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2621, + "indexed": false, + "mutability": "mutable", + "name": "previousAdmin", + "nameLocation": "885:13:14", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "877:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2620, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "877:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2623, + "indexed": false, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "908:8:14", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "900:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "900:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "876:41:14" + }, + "src": "858:60:14" + }, + { + "anonymous": false, + "documentation": { + "id": 2626, + "nodeType": "StructuredDocumentation", + "src": "924:59:14", + "text": " @dev Emitted when the beacon is changed." + }, + "eventSelector": "1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e", + "id": 2630, + "name": "BeaconUpgraded", + "nameLocation": "994:14:14", + "nodeType": "EventDefinition", + "parameters": { + "id": 2629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2628, + "indexed": true, + "mutability": "mutable", + "name": "beacon", + "nameLocation": "1025:6:14", + "nodeType": "VariableDeclaration", + "scope": 2630, + "src": "1009:22:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1009:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1008:24:14" + }, + "src": "988:45:14" + }, + { + "constant": true, + "documentation": { + "id": 2631, + "nodeType": "StructuredDocumentation", + "src": "1039:170:14", + "text": " @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1." + }, + "id": 2634, + "mutability": "constant", + "name": "IMPLEMENTATION_SLOT", + "nameLocation": "1305:19:14", + "nodeType": "VariableDeclaration", + "scope": 2907, + "src": "1279:114:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2632, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1279:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263", + "id": 2633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1327:66:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1", + "typeString": "int_const 2444...(69 digits omitted)...5612" + }, + "value": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" + }, + "visibility": "internal" + }, + { + "documentation": { + "id": 2635, + "nodeType": "StructuredDocumentation", + "src": "1400:69:14", + "text": " @dev The `implementation` of the proxy is invalid." + }, + "errorSelector": "4c9c8ce3", + "id": 2639, + "name": "ERC1967InvalidImplementation", + "nameLocation": "1480:28:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2637, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "1517:14:14", + "nodeType": "VariableDeclaration", + "scope": 2639, + "src": "1509:22:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1509:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1508:24:14" + }, + "src": "1474:59:14" + }, + { + "documentation": { + "id": 2640, + "nodeType": "StructuredDocumentation", + "src": "1539:60:14", + "text": " @dev The `admin` of the proxy is invalid." + }, + "errorSelector": "62e77ba2", + "id": 2644, + "name": "ERC1967InvalidAdmin", + "nameLocation": "1610:19:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2642, + "mutability": "mutable", + "name": "admin", + "nameLocation": "1638:5:14", + "nodeType": "VariableDeclaration", + "scope": 2644, + "src": "1630:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1630:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1629:15:14" + }, + "src": "1604:41:14" + }, + { + "documentation": { + "id": 2645, + "nodeType": "StructuredDocumentation", + "src": "1651:61:14", + "text": " @dev The `beacon` of the proxy is invalid." + }, + "errorSelector": "64ced0ec", + "id": 2649, + "name": "ERC1967InvalidBeacon", + "nameLocation": "1723:20:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2648, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2647, + "mutability": "mutable", + "name": "beacon", + "nameLocation": "1752:6:14", + "nodeType": "VariableDeclaration", + "scope": 2649, + "src": "1744:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1744:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1743:16:14" + }, + "src": "1717:43:14" + }, + { + "documentation": { + "id": 2650, + "nodeType": "StructuredDocumentation", + "src": "1766:82:14", + "text": " @dev An upgrade function sees `msg.value > 0` that may be lost." + }, + "errorSelector": "b398979f", + "id": 2652, + "name": "ERC1967NonPayable", + "nameLocation": "1859:17:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2651, + "nodeType": "ParameterList", + "parameters": [], + "src": "1876:2:14" + }, + "src": "1853:26:14" + }, + { + "body": { + "id": 2664, + "nodeType": "Block", + "src": "2018:77:14", + "statements": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 2660, + "name": "IMPLEMENTATION_SLOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "2062:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2658, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3646, + "src": "2035:11:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3646_$", + "typeString": "type(library StorageSlot)" + } + }, + "id": 2659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2047:14:14", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3568, + "src": "2035:26:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3542_storage_ptr_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 2661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2035:47:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$3542_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "id": 2662, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2083:5:14", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 3541, + "src": "2035:53:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2657, + "id": 2663, + "nodeType": "Return", + "src": "2028:60:14" + } + ] + }, + "documentation": { + "id": 2653, + "nodeType": "StructuredDocumentation", + "src": "1885:67:14", + "text": " @dev Returns the current implementation address." + }, + "id": 2665, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getImplementation", + "nameLocation": "1966:17:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2654, + "nodeType": "ParameterList", + "parameters": [], + "src": "1983:2:14" + }, + "returnParameters": { + "id": 2657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2656, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "2009:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2655, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2009:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2008:9:14" + }, + "scope": 2907, + "src": "1957:138:14", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2691, + "nodeType": "Block", + "src": "2249:218:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2671, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "2263:17:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2281:4:14", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "2263:22:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2286:6:14", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2263:29:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2296:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2263:34:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2681, + "nodeType": "IfStatement", + "src": "2259:119:14", + "trueBody": { + "id": 2680, + "nodeType": "Block", + "src": "2299:79:14", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 2677, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "2349:17:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2676, + "name": "ERC1967InvalidImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2639, + "src": "2320:28:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 2678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2320:47:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2679, + "nodeType": "RevertStatement", + "src": "2313:54:14" + } + ] + } + }, + { + "expression": { + "id": 2689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "arguments": [ + { + "id": 2685, + "name": "IMPLEMENTATION_SLOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "2414:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2682, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3646, + "src": "2387:11:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3646_$", + "typeString": "type(library StorageSlot)" + } + }, + "id": 2684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2399:14:14", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3568, + "src": "2387:26:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3542_storage_ptr_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 2686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2387:47:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$3542_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "id": 2687, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2435:5:14", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 3541, + "src": "2387:53:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2688, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "2443:17:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2387:73:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2690, + "nodeType": "ExpressionStatement", + "src": "2387:73:14" + } + ] + }, + "documentation": { + "id": 2666, + "nodeType": "StructuredDocumentation", + "src": "2101:80:14", + "text": " @dev Stores a new address in the EIP1967 implementation slot." + }, + "id": 2692, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setImplementation", + "nameLocation": "2195:18:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2668, + "mutability": "mutable", + "name": "newImplementation", + "nameLocation": "2222:17:14", + "nodeType": "VariableDeclaration", + "scope": 2692, + "src": "2214:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2214:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2213:27:14" + }, + "returnParameters": { + "id": 2670, + "nodeType": "ParameterList", + "parameters": [], + "src": "2249:0:14" + }, + "scope": 2907, + "src": "2186:281:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2725, + "nodeType": "Block", + "src": "2860:254:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2701, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "2889:17:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2700, + "name": "_setImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2692, + "src": "2870:18:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2870:37:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2703, + "nodeType": "ExpressionStatement", + "src": "2870:37:14" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2705, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "2931:17:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2704, + "name": "Upgraded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2618, + "src": "2922:8:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2922:27:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2707, + "nodeType": "EmitStatement", + "src": "2917:32:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2708, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2697, + "src": "2964:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2969:6:14", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2964:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2978:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2964:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2723, + "nodeType": "Block", + "src": "3065:43:14", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2720, + "name": "_checkNonPayable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2906, + "src": "3079:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3079:18:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2722, + "nodeType": "ExpressionStatement", + "src": "3079:18:14" + } + ] + }, + "id": 2724, + "nodeType": "IfStatement", + "src": "2960:148:14", + "trueBody": { + "id": 2719, + "nodeType": "Block", + "src": "2981:78:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2715, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "3024:17:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2716, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2697, + "src": "3043:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2712, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3389, + "src": "2995:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Address_$3389_$", + "typeString": "type(library Address)" + } + }, + "id": 2714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3003:20:14", + "memberName": "functionDelegateCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 3308, + "src": "2995:28:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory) returns (bytes memory)" + } + }, + "id": 2717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2995:53:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2718, + "nodeType": "ExpressionStatement", + "src": "2995:53:14" + } + ] + } + } + ] + }, + "documentation": { + "id": 2693, + "nodeType": "StructuredDocumentation", + "src": "2473:301:14", + "text": " @dev Performs implementation upgrade with additional setup call if data is nonempty.\n This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n to avoid stuck value in the contract.\n Emits an {IERC1967-Upgraded} event." + }, + "id": 2726, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "upgradeToAndCall", + "nameLocation": "2788:16:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2695, + "mutability": "mutable", + "name": "newImplementation", + "nameLocation": "2813:17:14", + "nodeType": "VariableDeclaration", + "scope": 2726, + "src": "2805:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2805:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2697, + "mutability": "mutable", + "name": "data", + "nameLocation": "2845:4:14", + "nodeType": "VariableDeclaration", + "scope": 2726, + "src": "2832:17:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2696, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2832:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2804:46:14" + }, + "returnParameters": { + "id": 2699, + "nodeType": "ParameterList", + "parameters": [], + "src": "2860:0:14" + }, + "scope": 2907, + "src": "2779:335:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 2727, + "nodeType": "StructuredDocumentation", + "src": "3120:145:14", + "text": " @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1." + }, + "id": 2730, + "mutability": "constant", + "name": "ADMIN_SLOT", + "nameLocation": "3361:10:14", + "nodeType": "VariableDeclaration", + "scope": 2907, + "src": "3335:105:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2728, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3335:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033", + "id": 2729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3374:66:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1", + "typeString": "int_const 8195...(69 digits omitted)...7091" + }, + "value": "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + }, + "visibility": "internal" + }, + { + "body": { + "id": 2742, + "nodeType": "Block", + "src": "3844:68:14", + "statements": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 2738, + "name": "ADMIN_SLOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2730, + "src": "3888:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2736, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3646, + "src": "3861:11:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3646_$", + "typeString": "type(library StorageSlot)" + } + }, + "id": 2737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3873:14:14", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3568, + "src": "3861:26:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3542_storage_ptr_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 2739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3861:38:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$3542_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "id": 2740, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3900:5:14", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 3541, + "src": "3861:44:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2735, + "id": 2741, + "nodeType": "Return", + "src": "3854:51:14" + } + ] + }, + "documentation": { + "id": 2731, + "nodeType": "StructuredDocumentation", + "src": "3447:340:14", + "text": " @dev Returns the current admin.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`" + }, + "id": 2743, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAdmin", + "nameLocation": "3801:8:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2732, + "nodeType": "ParameterList", + "parameters": [], + "src": "3809:2:14" + }, + "returnParameters": { + "id": 2735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2734, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "3835:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2733, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3835:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3834:9:14" + }, + "scope": 2907, + "src": "3792:120:14", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2773, + "nodeType": "Block", + "src": "4039:172:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2749, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "4053:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4073:1:14", + "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": 2751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4065:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2750, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4065:7:14", + "typeDescriptions": {} + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4065:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4053:22:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2763, + "nodeType": "IfStatement", + "src": "4049:91:14", + "trueBody": { + "id": 2762, + "nodeType": "Block", + "src": "4077:63:14", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 2758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4126:1:14", + "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": 2757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4118:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2756, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4118:7:14", + "typeDescriptions": {} + } + }, + "id": 2759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4118:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2755, + "name": "ERC1967InvalidAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2644, + "src": "4098:19:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 2760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4098:31:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2761, + "nodeType": "RevertStatement", + "src": "4091:38:14" + } + ] + } + }, + { + "expression": { + "id": 2771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "arguments": [ + { + "id": 2767, + "name": "ADMIN_SLOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2730, + "src": "4176:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2764, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3646, + "src": "4149:11:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3646_$", + "typeString": "type(library StorageSlot)" + } + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4161:14:14", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3568, + "src": "4149:26:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3542_storage_ptr_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4149:38:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$3542_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "id": 2769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4188:5:14", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 3541, + "src": "4149:44:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2770, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "4196:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4149:55:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2772, + "nodeType": "ExpressionStatement", + "src": "4149:55:14" + } + ] + }, + "documentation": { + "id": 2744, + "nodeType": "StructuredDocumentation", + "src": "3918:71:14", + "text": " @dev Stores a new address in the EIP1967 admin slot." + }, + "id": 2774, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setAdmin", + "nameLocation": "4003:9:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2746, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "4021:8:14", + "nodeType": "VariableDeclaration", + "scope": 2774, + "src": "4013:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4013:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4012:18:14" + }, + "returnParameters": { + "id": 2748, + "nodeType": "ParameterList", + "parameters": [], + "src": "4039:0:14" + }, + "scope": 2907, + "src": "3994:217:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2790, + "nodeType": "Block", + "src": "4379:85:14", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2781, + "name": "getAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "4407:8:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 2782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4407:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2783, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2777, + "src": "4419:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2780, + "name": "AdminChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "4394:12:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4394:34:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2785, + "nodeType": "EmitStatement", + "src": "4389:39:14" + }, + { + "expression": { + "arguments": [ + { + "id": 2787, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2777, + "src": "4448:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2786, + "name": "_setAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2774, + "src": "4438:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4438:19:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2789, + "nodeType": "ExpressionStatement", + "src": "4438:19:14" + } + ] + }, + "documentation": { + "id": 2775, + "nodeType": "StructuredDocumentation", + "src": "4217:109:14", + "text": " @dev Changes the admin of the proxy.\n Emits an {IERC1967-AdminChanged} event." + }, + "id": 2791, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "changeAdmin", + "nameLocation": "4340:11:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2778, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2777, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "4360:8:14", + "nodeType": "VariableDeclaration", + "scope": 2791, + "src": "4352:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4352:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4351:18:14" + }, + "returnParameters": { + "id": 2779, + "nodeType": "ParameterList", + "parameters": [], + "src": "4379:0:14" + }, + "scope": 2907, + "src": "4331:133:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 2792, + "nodeType": "StructuredDocumentation", + "src": "4470:201:14", + "text": " @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1." + }, + "id": 2795, + "mutability": "constant", + "name": "BEACON_SLOT", + "nameLocation": "4767:11:14", + "nodeType": "VariableDeclaration", + "scope": 2907, + "src": "4741:106:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2793, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4741:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530", + "id": 2794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4781:66:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1", + "typeString": "int_const 7415...(69 digits omitted)...4704" + }, + "value": "0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50" + }, + "visibility": "internal" + }, + { + "body": { + "id": 2807, + "nodeType": "Block", + "src": "4963:69:14", + "statements": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 2803, + "name": "BEACON_SLOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2795, + "src": "5007:11:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2801, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3646, + "src": "4980:11:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3646_$", + "typeString": "type(library StorageSlot)" + } + }, + "id": 2802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4992:14:14", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3568, + "src": "4980:26:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3542_storage_ptr_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 2804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4980:39:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$3542_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "id": 2805, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5020:5:14", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 3541, + "src": "4980:45:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2800, + "id": 2806, + "nodeType": "Return", + "src": "4973:52:14" + } + ] + }, + "documentation": { + "id": 2796, + "nodeType": "StructuredDocumentation", + "src": "4854:51:14", + "text": " @dev Returns the current beacon." + }, + "id": 2808, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBeacon", + "nameLocation": "4919:9:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2797, + "nodeType": "ParameterList", + "parameters": [], + "src": "4928:2:14" + }, + "returnParameters": { + "id": 2800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2799, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2808, + "src": "4954:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4954:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4953:9:14" + }, + "scope": 2907, + "src": "4910:122:14", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2853, + "nodeType": "Block", + "src": "5161:390:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2814, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2811, + "src": "5175:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5185:4:14", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "5175:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5190:6:14", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5175:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2817, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5200:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5175:26:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2824, + "nodeType": "IfStatement", + "src": "5171:95:14", + "trueBody": { + "id": 2823, + "nodeType": "Block", + "src": "5203:63:14", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 2820, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2811, + "src": "5245:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2819, + "name": "ERC1967InvalidBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2649, + "src": "5224:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 2821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5224:31:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2822, + "nodeType": "RevertStatement", + "src": "5217:38:14" + } + ] + } + }, + { + "expression": { + "id": 2832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "arguments": [ + { + "id": 2828, + "name": "BEACON_SLOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2795, + "src": "5303:11:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2825, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3646, + "src": "5276:11:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3646_$", + "typeString": "type(library StorageSlot)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5288:14:14", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3568, + "src": "5276:26:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3542_storage_ptr_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 2829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5276:39:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$3542_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "id": 2830, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5316:5:14", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 3541, + "src": "5276:45:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2831, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2811, + "src": "5324:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5276:57:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2833, + "nodeType": "ExpressionStatement", + "src": "5276:57:14" + }, + { + "assignments": [ + 2835 + ], + "declarations": [ + { + "constant": false, + "id": 2835, + "mutability": "mutable", + "name": "beaconImplementation", + "nameLocation": "5352:20:14", + "nodeType": "VariableDeclaration", + "scope": 2853, + "src": "5344:28:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2834, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5344:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2841, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 2837, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2811, + "src": "5383:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2836, + "name": "IBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "5375:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IBeacon_$2953_$", + "typeString": "type(contract IBeacon)" + } + }, + "id": 2838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5375:18:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBeacon_$2953", + "typeString": "contract IBeacon" + } + }, + "id": 2839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5394:14:14", + "memberName": "implementation", + "nodeType": "MemberAccess", + "referencedDeclaration": 2952, + "src": "5375:33:14", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 2840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5375:35:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5344:66:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2842, + "name": "beaconImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2835, + "src": "5424:20:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5445:4:14", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "5424:25:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5450:6:14", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5424:32:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2845, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5460:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5424:37:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2852, + "nodeType": "IfStatement", + "src": "5420:125:14", + "trueBody": { + "id": 2851, + "nodeType": "Block", + "src": "5463:82:14", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 2848, + "name": "beaconImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2835, + "src": "5513:20:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2847, + "name": "ERC1967InvalidImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2639, + "src": "5484:28:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 2849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5484:50:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2850, + "nodeType": "RevertStatement", + "src": "5477:57:14" + } + ] + } + } + ] + }, + "documentation": { + "id": 2809, + "nodeType": "StructuredDocumentation", + "src": "5038:71:14", + "text": " @dev Stores a new beacon in the EIP1967 beacon slot." + }, + "id": 2854, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBeacon", + "nameLocation": "5123:10:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2811, + "mutability": "mutable", + "name": "newBeacon", + "nameLocation": "5142:9:14", + "nodeType": "VariableDeclaration", + "scope": 2854, + "src": "5134:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5134:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5133:19:14" + }, + "returnParameters": { + "id": 2813, + "nodeType": "ParameterList", + "parameters": [], + "src": "5161:0:14" + }, + "scope": 2907, + "src": "5114:437:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2891, + "nodeType": "Block", + "src": "6155:254:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2863, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2857, + "src": "6176:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2862, + "name": "_setBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "6165:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6165:21:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2865, + "nodeType": "ExpressionStatement", + "src": "6165:21:14" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2867, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2857, + "src": "6216:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2866, + "name": "BeaconUpgraded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "6201:14:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6201:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2869, + "nodeType": "EmitStatement", + "src": "6196:30:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2870, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "6241:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6246:6:14", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6241:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6255:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6241:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2889, + "nodeType": "Block", + "src": "6360:43:14", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2886, + "name": "_checkNonPayable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2906, + "src": "6374:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6374:18:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2888, + "nodeType": "ExpressionStatement", + "src": "6374:18:14" + } + ] + }, + "id": 2890, + "nodeType": "IfStatement", + "src": "6237:166:14", + "trueBody": { + "id": 2885, + "nodeType": "Block", + "src": "6258:96:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 2878, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2857, + "src": "6309:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2877, + "name": "IBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "6301:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IBeacon_$2953_$", + "typeString": "type(contract IBeacon)" + } + }, + "id": 2879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6301:18:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBeacon_$2953", + "typeString": "contract IBeacon" + } + }, + "id": 2880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6320:14:14", + "memberName": "implementation", + "nodeType": "MemberAccess", + "referencedDeclaration": 2952, + "src": "6301:33:14", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6301:35:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2882, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "6338:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2874, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3389, + "src": "6272:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Address_$3389_$", + "typeString": "type(library Address)" + } + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6280:20:14", + "memberName": "functionDelegateCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 3308, + "src": "6272:28:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory) returns (bytes memory)" + } + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6272:71:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2884, + "nodeType": "ExpressionStatement", + "src": "6272:71:14" + } + ] + } + } + ] + }, + "documentation": { + "id": 2855, + "nodeType": "StructuredDocumentation", + "src": "5557:514:14", + "text": " @dev Change the beacon and trigger a setup call if data is nonempty.\n This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n to avoid stuck value in the contract.\n Emits an {IERC1967-BeaconUpgraded} event.\n CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since\n it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for\n efficiency." + }, + "id": 2892, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "upgradeBeaconToAndCall", + "nameLocation": "6085:22:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2857, + "mutability": "mutable", + "name": "newBeacon", + "nameLocation": "6116:9:14", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "6108:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6108:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "data", + "nameLocation": "6140:4:14", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "6127:17:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2858, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6127:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6107:38:14" + }, + "returnParameters": { + "id": 2861, + "nodeType": "ParameterList", + "parameters": [], + "src": "6155:0:14" + }, + "scope": 2907, + "src": "6076:333:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2905, + "nodeType": "Block", + "src": "6634:86:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2896, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6648:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6652:5:14", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "6648:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6660:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6648:13:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2904, + "nodeType": "IfStatement", + "src": "6644:70:14", + "trueBody": { + "id": 2903, + "nodeType": "Block", + "src": "6663:51:14", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2900, + "name": "ERC1967NonPayable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2652, + "src": "6684:17:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 2901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6684:19:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2902, + "nodeType": "RevertStatement", + "src": "6677:26:14" + } + ] + } + } + ] + }, + "documentation": { + "id": 2893, + "nodeType": "StructuredDocumentation", + "src": "6415:178:14", + "text": " @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract\n if an upgrade doesn't perform an initialization call." + }, + "id": 2906, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkNonPayable", + "nameLocation": "6607:16:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2894, + "nodeType": "ParameterList", + "parameters": [], + "src": "6623:2:14" + }, + "returnParameters": { + "id": 2895, + "nodeType": "ParameterList", + "parameters": [], + "src": "6634:0:14" + }, + "scope": 2907, + "src": "6598:122:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 2908, + "src": "449:6273:14", + "usedErrors": [ + 2639, + 2644, + 2649, + 2652 + ], + "usedEvents": [ + 2618, + 2625, + 2630 + ] + } + ], + "src": "114:6609:14" + }, + "id": 14 + }, + "@openzeppelin/contracts/proxy/Proxy.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/Proxy.sol", + "exportedSymbols": { + "Proxy": [ + 2943 + ] + }, + "id": 2944, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2909, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "99:24:15" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Proxy", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2910, + "nodeType": "StructuredDocumentation", + "src": "125:598:15", + "text": " @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy." + }, + "fullyImplemented": false, + "id": 2943, + "linearizedBaseContracts": [ + 2943 + ], + "name": "Proxy", + "nameLocation": "742:5:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2917, + "nodeType": "Block", + "src": "1009:835:15", + "statements": [ + { + "AST": { + "nativeSrc": "1028:810:15", + "nodeType": "YulBlock", + "src": "1028:810:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1281:1:15", + "nodeType": "YulLiteral", + "src": "1281:1:15", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1284:1:15", + "nodeType": "YulLiteral", + "src": "1284:1:15", + "type": "", + "value": "0" + }, + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "1287:12:15", + "nodeType": "YulIdentifier", + "src": "1287:12:15" + }, + "nativeSrc": "1287:14:15", + "nodeType": "YulFunctionCall", + "src": "1287:14:15" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "1268:12:15", + "nodeType": "YulIdentifier", + "src": "1268:12:15" + }, + "nativeSrc": "1268:34:15", + "nodeType": "YulFunctionCall", + "src": "1268:34:15" + }, + "nativeSrc": "1268:34:15", + "nodeType": "YulExpressionStatement", + "src": "1268:34:15" + }, + { + "nativeSrc": "1429:74:15", + "nodeType": "YulVariableDeclaration", + "src": "1429:74:15", + "value": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "1456:3:15", + "nodeType": "YulIdentifier", + "src": "1456:3:15" + }, + "nativeSrc": "1456:5:15", + "nodeType": "YulFunctionCall", + "src": "1456:5:15" + }, + { + "name": "implementation", + "nativeSrc": "1463:14:15", + "nodeType": "YulIdentifier", + "src": "1463:14:15" + }, + { + "kind": "number", + "nativeSrc": "1479:1:15", + "nodeType": "YulLiteral", + "src": "1479:1:15", + "type": "", + "value": "0" + }, + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "1482:12:15", + "nodeType": "YulIdentifier", + "src": "1482:12:15" + }, + "nativeSrc": "1482:14:15", + "nodeType": "YulFunctionCall", + "src": "1482:14:15" + }, + { + "kind": "number", + "nativeSrc": "1498:1:15", + "nodeType": "YulLiteral", + "src": "1498:1:15", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1501:1:15", + "nodeType": "YulLiteral", + "src": "1501:1:15", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "delegatecall", + "nativeSrc": "1443:12:15", + "nodeType": "YulIdentifier", + "src": "1443:12:15" + }, + "nativeSrc": "1443:60:15", + "nodeType": "YulFunctionCall", + "src": "1443:60:15" + }, + "variables": [ + { + "name": "result", + "nativeSrc": "1433:6:15", + "nodeType": "YulTypedName", + "src": "1433:6:15", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1571:1:15", + "nodeType": "YulLiteral", + "src": "1571:1:15", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1574:1:15", + "nodeType": "YulLiteral", + "src": "1574:1:15", + "type": "", + "value": "0" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "1577:14:15", + "nodeType": "YulIdentifier", + "src": "1577:14:15" + }, + "nativeSrc": "1577:16:15", + "nodeType": "YulFunctionCall", + "src": "1577:16:15" + } + ], + "functionName": { + "name": "returndatacopy", + "nativeSrc": "1556:14:15", + "nodeType": "YulIdentifier", + "src": "1556:14:15" + }, + "nativeSrc": "1556:38:15", + "nodeType": "YulFunctionCall", + "src": "1556:38:15" + }, + "nativeSrc": "1556:38:15", + "nodeType": "YulExpressionStatement", + "src": "1556:38:15" + }, + { + "cases": [ + { + "body": { + "nativeSrc": "1689:59:15", + "nodeType": "YulBlock", + "src": "1689:59:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1714:1:15", + "nodeType": "YulLiteral", + "src": "1714:1:15", + "type": "", + "value": "0" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "1717:14:15", + "nodeType": "YulIdentifier", + "src": "1717:14:15" + }, + "nativeSrc": "1717:16:15", + "nodeType": "YulFunctionCall", + "src": "1717:16:15" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1707:6:15", + "nodeType": "YulIdentifier", + "src": "1707:6:15" + }, + "nativeSrc": "1707:27:15", + "nodeType": "YulFunctionCall", + "src": "1707:27:15" + }, + "nativeSrc": "1707:27:15", + "nodeType": "YulExpressionStatement", + "src": "1707:27:15" + } + ] + }, + "nativeSrc": "1682:66:15", + "nodeType": "YulCase", + "src": "1682:66:15", + "value": { + "kind": "number", + "nativeSrc": "1687:1:15", + "nodeType": "YulLiteral", + "src": "1687:1:15", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "1769:59:15", + "nodeType": "YulBlock", + "src": "1769:59:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1794:1:15", + "nodeType": "YulLiteral", + "src": "1794:1:15", + "type": "", + "value": "0" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "1797:14:15", + "nodeType": "YulIdentifier", + "src": "1797:14:15" + }, + "nativeSrc": "1797:16:15", + "nodeType": "YulFunctionCall", + "src": "1797:16:15" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "1787:6:15", + "nodeType": "YulIdentifier", + "src": "1787:6:15" + }, + "nativeSrc": "1787:27:15", + "nodeType": "YulFunctionCall", + "src": "1787:27:15" + }, + "nativeSrc": "1787:27:15", + "nodeType": "YulExpressionStatement", + "src": "1787:27:15" + } + ] + }, + "nativeSrc": "1761:67:15", + "nodeType": "YulCase", + "src": "1761:67:15", + "value": "default" + } + ], + "expression": { + "name": "result", + "nativeSrc": "1615:6:15", + "nodeType": "YulIdentifier", + "src": "1615:6:15" + }, + "nativeSrc": "1608:220:15", + "nodeType": "YulSwitch", + "src": "1608:220:15" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2913, + "isOffset": false, + "isSlot": false, + "src": "1463:14:15", + "valueSize": 1 + } + ], + "id": 2916, + "nodeType": "InlineAssembly", + "src": "1019:819:15" + } + ] + }, + "documentation": { + "id": 2911, + "nodeType": "StructuredDocumentation", + "src": "754:190:15", + "text": " @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller." + }, + "id": 2918, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_delegate", + "nameLocation": "958:9:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2913, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "976:14:15", + "nodeType": "VariableDeclaration", + "scope": 2918, + "src": "968:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2912, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "968:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "967:24:15" + }, + "returnParameters": { + "id": 2915, + "nodeType": "ParameterList", + "parameters": [], + "src": "1009:0:15" + }, + "scope": 2943, + "src": "949:895:15", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "documentation": { + "id": 2919, + "nodeType": "StructuredDocumentation", + "src": "1850:173:15", + "text": " @dev This is a virtual function that should be overridden so it returns the address to which the fallback\n function and {_fallback} should delegate." + }, + "id": 2924, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_implementation", + "nameLocation": "2037:15:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [], + "src": "2052:2:15" + }, + "returnParameters": { + "id": 2923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2922, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2924, + "src": "2086:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2921, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2086:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2085:9:15" + }, + "scope": 2943, + "src": "2028:67:15", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2933, + "nodeType": "Block", + "src": "2361:45:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2929, + "name": "_implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2924, + "src": "2381:15:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2381:17:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2928, + "name": "_delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2918, + "src": "2371:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2371:28:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2932, + "nodeType": "ExpressionStatement", + "src": "2371:28:15" + } + ] + }, + "documentation": { + "id": 2925, + "nodeType": "StructuredDocumentation", + "src": "2101:217:15", + "text": " @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internal call site, it will return directly to the external caller." + }, + "id": 2934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_fallback", + "nameLocation": "2332:9:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2926, + "nodeType": "ParameterList", + "parameters": [], + "src": "2341:2:15" + }, + "returnParameters": { + "id": 2927, + "nodeType": "ParameterList", + "parameters": [], + "src": "2361:0:15" + }, + "scope": 2943, + "src": "2323:83:15", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2941, + "nodeType": "Block", + "src": "2639:28:15", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2938, + "name": "_fallback", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2934, + "src": "2649:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2649:11:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2940, + "nodeType": "ExpressionStatement", + "src": "2649:11:15" + } + ] + }, + "documentation": { + "id": 2935, + "nodeType": "StructuredDocumentation", + "src": "2412:186:15", + "text": " @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data." + }, + "id": 2942, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2936, + "nodeType": "ParameterList", + "parameters": [], + "src": "2611:2:15" + }, + "returnParameters": { + "id": 2937, + "nodeType": "ParameterList", + "parameters": [], + "src": "2639:0:15" + }, + "scope": 2943, + "src": "2603:64:15", + "stateMutability": "payable", + "virtual": true, + "visibility": "external" + } + ], + "scope": 2944, + "src": "724:1945:15", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "99:2571:15" + }, + "id": 15 + }, + "@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/beacon/IBeacon.sol", + "exportedSymbols": { + "IBeacon": [ + 2953 + ] + }, + "id": 2954, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2945, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "108:24:16" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IBeacon", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2946, + "nodeType": "StructuredDocumentation", + "src": "134:79:16", + "text": " @dev This is the interface that {BeaconProxy} expects of its beacon." + }, + "fullyImplemented": false, + "id": 2953, + "linearizedBaseContracts": [ + 2953 + ], + "name": "IBeacon", + "nameLocation": "224:7:16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2947, + "nodeType": "StructuredDocumentation", + "src": "238:168:16", + "text": " @dev Must return an address that can be used as a delegate call target.\n {UpgradeableBeacon} will check that this address is a contract." + }, + "functionSelector": "5c60da1b", + "id": 2952, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "implementation", + "nameLocation": "420:14:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2948, + "nodeType": "ParameterList", + "parameters": [], + "src": "434:2:16" + }, + "returnParameters": { + "id": 2951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2950, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2952, + "src": "460:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2949, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "460:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "459:9:16" + }, + "scope": 2953, + "src": "411:58:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2954, + "src": "214:257:16", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "108:364:16" + }, + "id": 16 + }, + "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol", + "exportedSymbols": { + "ITransparentUpgradeableProxy": [ + 3022 + ], + "Ownable": [ + 1719 + ], + "ProxyAdmin": [ + 3001 + ] + }, + "id": 3002, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2955, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "116:24:17" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", + "file": "./TransparentUpgradeableProxy.sol", + "id": 2957, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3002, + "sourceUnit": 3137, + "src": "142:79:17", + "symbolAliases": [ + { + "foreign": { + "id": 2956, + "name": "ITransparentUpgradeableProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3022, + "src": "150:28:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "../../access/Ownable.sol", + "id": 2959, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3002, + "sourceUnit": 1720, + "src": "222:49:17", + "symbolAliases": [ + { + "foreign": { + "id": 2958, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1719, + "src": "230:7:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2961, + "name": "Ownable", + "nameLocations": [ + "525:7:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1719, + "src": "525:7:17" + }, + "id": 2962, + "nodeType": "InheritanceSpecifier", + "src": "525:7:17" + } + ], + "canonicalName": "ProxyAdmin", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2960, + "nodeType": "StructuredDocumentation", + "src": "273:228:17", + "text": " @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}." + }, + "fullyImplemented": true, + "id": 3001, + "linearizedBaseContracts": [ + 3001, + 1719, + 3419 + ], + "name": "ProxyAdmin", + "nameLocation": "511:10:17", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 2963, + "nodeType": "StructuredDocumentation", + "src": "539:623:17", + "text": " @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address)`\n and `upgradeAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called,\n while `upgradeAndCall` will invoke the `receive` function if the second argument is the empty byte string.\n If the getter returns `\"5.0.0\"`, only `upgradeAndCall(address,bytes)` is present, and the second argument must\n be the empty byte string if no function should be called, making it impossible to invoke the `receive` function\n during an upgrade." + }, + "functionSelector": "ad3cb1cc", + "id": 2966, + "mutability": "constant", + "name": "UPGRADE_INTERFACE_VERSION", + "nameLocation": "1190:25:17", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "1167:58:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2964, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1167:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "352e302e30", + "id": 2965, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1218:7:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2ade050ecfcf8ae20ae1d10a23573f9d7e0bad85e74a2cf8338a65401e64558c", + "typeString": "literal_string \"5.0.0\"" + }, + "value": "5.0.0" + }, + "visibility": "public" + }, + { + "body": { + "id": 2975, + "nodeType": "Block", + "src": "1365:2:17", + "statements": [] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "1232:72:17", + "text": " @dev Sets the initial owner who can perform upgrades." + }, + "id": 2976, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 2972, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "1351:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2973, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2971, + "name": "Ownable", + "nameLocations": [ + "1343:7:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1719, + "src": "1343:7:17" + }, + "nodeType": "ModifierInvocation", + "src": "1343:21:17" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1329:12:17", + "nodeType": "VariableDeclaration", + "scope": 2976, + "src": "1321:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1321:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1320:22:17" + }, + "returnParameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [], + "src": "1365:0:17" + }, + "scope": 3001, + "src": "1309:58:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2999, + "nodeType": "Block", + "src": "1863:79:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2995, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2982, + "src": "1914:14:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2996, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2984, + "src": "1930:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2989, + "name": "proxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2980, + "src": "1873:5:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransparentUpgradeableProxy_$3022", + "typeString": "contract ITransparentUpgradeableProxy" + } + }, + "id": 2991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1879:16:17", + "memberName": "upgradeToAndCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 3021, + "src": "1873:22:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory) payable external" + } + }, + "id": 2994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "expression": { + "id": 2992, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1903:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1907:5:17", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "1903:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "1873:40:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value", + "typeString": "function (address,bytes memory) payable external" + } + }, + "id": 2997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1873:62:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2998, + "nodeType": "ExpressionStatement", + "src": "1873:62:17" + } + ] + }, + "documentation": { + "id": 2977, + "nodeType": "StructuredDocumentation", + "src": "1373:319:17", + "text": " @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation.\n See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}.\n Requirements:\n - This contract must be the admin of `proxy`.\n - If `data` is empty, `msg.value` must be zero." + }, + "functionSelector": "9623609d", + "id": 3000, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2987, + "kind": "modifierInvocation", + "modifierName": { + "id": 2986, + "name": "onlyOwner", + "nameLocations": [ + "1853:9:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1630, + "src": "1853:9:17" + }, + "nodeType": "ModifierInvocation", + "src": "1853:9:17" + } + ], + "name": "upgradeAndCall", + "nameLocation": "1706:14:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2985, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2980, + "mutability": "mutable", + "name": "proxy", + "nameLocation": "1759:5:17", + "nodeType": "VariableDeclaration", + "scope": 3000, + "src": "1730:34:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransparentUpgradeableProxy_$3022", + "typeString": "contract ITransparentUpgradeableProxy" + }, + "typeName": { + "id": 2979, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2978, + "name": "ITransparentUpgradeableProxy", + "nameLocations": [ + "1730:28:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3022, + "src": "1730:28:17" + }, + "referencedDeclaration": 3022, + "src": "1730:28:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransparentUpgradeableProxy_$3022", + "typeString": "contract ITransparentUpgradeableProxy" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2982, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "1782:14:17", + "nodeType": "VariableDeclaration", + "scope": 3000, + "src": "1774:22:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2981, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1774:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2984, + "mutability": "mutable", + "name": "data", + "nameLocation": "1819:4:17", + "nodeType": "VariableDeclaration", + "scope": 3000, + "src": "1806:17:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2983, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1806:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1720:109:17" + }, + "returnParameters": { + "id": 2988, + "nodeType": "ParameterList", + "parameters": [], + "src": "1863:0:17" + }, + "scope": 3001, + "src": "1697:245:17", + "stateMutability": "payable", + "virtual": true, + "visibility": "public" + } + ], + "scope": 3002, + "src": "502:1442:17", + "usedErrors": [ + 1585, + 1590 + ], + "usedEvents": [ + 1596 + ] + } + ], + "src": "116:1829:17" + }, + "id": 17 + }, + "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", + "exportedSymbols": { + "ERC1967Proxy": [ + 2604 + ], + "ERC1967Utils": [ + 2907 + ], + "IERC1967": [ + 2556 + ], + "ITransparentUpgradeableProxy": [ + 3022 + ], + "ProxyAdmin": [ + 3001 + ], + "TransparentUpgradeableProxy": [ + 3136 + ] + }, + "id": 3137, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3003, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "133:24:18" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol", + "file": "../ERC1967/ERC1967Utils.sol", + "id": 3005, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3137, + "sourceUnit": 2908, + "src": "159:57:18", + "symbolAliases": [ + { + "foreign": { + "id": 3004, + "name": "ERC1967Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2907, + "src": "167:12:18", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", + "file": "../ERC1967/ERC1967Proxy.sol", + "id": 3007, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3137, + "sourceUnit": 2605, + "src": "217:57:18", + "symbolAliases": [ + { + "foreign": { + "id": 3006, + "name": "ERC1967Proxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "225:12:18", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC1967.sol", + "file": "../../interfaces/IERC1967.sol", + "id": 3009, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3137, + "sourceUnit": 2557, + "src": "275:55:18", + "symbolAliases": [ + { + "foreign": { + "id": 3008, + "name": "IERC1967", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "283:8:18", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol", + "file": "./ProxyAdmin.sol", + "id": 3011, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3137, + "sourceUnit": 3002, + "src": "331:44:18", + "symbolAliases": [ + { + "foreign": { + "id": 3010, + "name": "ProxyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "339:10:18", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3013, + "name": "IERC1967", + "nameLocations": [ + "865:8:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2556, + "src": "865:8:18" + }, + "id": 3014, + "nodeType": "InheritanceSpecifier", + "src": "865:8:18" + } + ], + "canonicalName": "ITransparentUpgradeableProxy", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 3012, + "nodeType": "StructuredDocumentation", + "src": "377:445:18", + "text": " @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\n does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch\n mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\n include them in the ABI so this interface must be used to interact with it." + }, + "fullyImplemented": false, + "id": 3022, + "linearizedBaseContracts": [ + 3022, + 2556 + ], + "name": "ITransparentUpgradeableProxy", + "nameLocation": "833:28:18", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "4f1ef286", + "id": 3021, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "upgradeToAndCall", + "nameLocation": "889:16:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3016, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3021, + "src": "906:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3015, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "906:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3018, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3021, + "src": "915:14:18", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3017, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "915:5:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "905:25:18" + }, + "returnParameters": { + "id": 3020, + "nodeType": "ParameterList", + "parameters": [], + "src": "947:0:18" + }, + "scope": 3022, + "src": "880:68:18", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3137, + "src": "823:127:18", + "usedErrors": [], + "usedEvents": [ + 2543, + 2550, + 2555 + ] + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3024, + "name": "ERC1967Proxy", + "nameLocations": [ + "4185:12:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2604, + "src": "4185:12:18" + }, + "id": 3025, + "nodeType": "InheritanceSpecifier", + "src": "4185:12:18" + } + ], + "canonicalName": "TransparentUpgradeableProxy", + "contractDependencies": [ + 3001 + ], + "contractKind": "contract", + "documentation": { + "id": 3023, + "nodeType": "StructuredDocumentation", + "src": "952:3192:18", + "text": " @dev This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself.\n 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to\n the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating\n the proxy admin cannot fallback to the target implementation.\n These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a\n dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to\n call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and\n allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative\n interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership.\n NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\n inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch\n mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\n fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\n implementation.\n NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a\n meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract.\n IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an\n immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be\n overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an\n undesirable state where the admin slot is different from the actual admin.\n WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the\n compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new\n function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This\n could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency." + }, + "fullyImplemented": true, + "id": 3136, + "linearizedBaseContracts": [ + 3136, + 2604, + 2943 + ], + "name": "TransparentUpgradeableProxy", + "nameLocation": "4154:27:18", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3027, + "mutability": "immutable", + "name": "_admin", + "nameLocation": "4565:6:18", + "nodeType": "VariableDeclaration", + "scope": 3136, + "src": "4539:32:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4539:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 3028, + "nodeType": "StructuredDocumentation", + "src": "4578:102:18", + "text": " @dev The proxy caller is the current admin, and can't fallback to the proxy target." + }, + "errorSelector": "d2b576ec", + "id": 3030, + "name": "ProxyDeniedAdminAccess", + "nameLocation": "4691:22:18", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3029, + "nodeType": "ParameterList", + "parameters": [], + "src": "4713:2:18" + }, + "src": "4685:31:18" + }, + { + "body": { + "id": 3062, + "nodeType": "Block", + "src": "5094:190:18", + "statements": [ + { + "expression": { + "id": 3053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3044, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3027, + "src": "5104:6:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 3050, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3035, + "src": "5136:12:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "5121:14:18", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ProxyAdmin_$3001_$", + "typeString": "function (address) returns (contract ProxyAdmin)" + }, + "typeName": { + "id": 3048, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3047, + "name": "ProxyAdmin", + "nameLocations": [ + "5125:10:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "5125:10:18" + }, + "referencedDeclaration": 3001, + "src": "5125:10:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ProxyAdmin_$3001", + "typeString": "contract ProxyAdmin" + } + } + }, + "id": 3051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5121:28:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ProxyAdmin_$3001", + "typeString": "contract ProxyAdmin" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ProxyAdmin_$3001", + "typeString": "contract ProxyAdmin" + } + ], + "id": 3046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5113:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3045, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5113:7:18", + "typeDescriptions": {} + } + }, + "id": 3052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5113:37:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5104:46:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3054, + "nodeType": "ExpressionStatement", + "src": "5104:46:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3058, + "name": "_proxyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3072, + "src": "5263:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_address_$", + "typeString": "function () returns (address)" + } + }, + "id": 3059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5263:13:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3055, + "name": "ERC1967Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2907, + "src": "5238:12:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$2907_$", + "typeString": "type(library ERC1967Utils)" + } + }, + "id": 3057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5251:11:18", + "memberName": "changeAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 2791, + "src": "5238:24:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5238:39:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3061, + "nodeType": "ExpressionStatement", + "src": "5238:39:18" + } + ] + }, + "documentation": { + "id": 3031, + "nodeType": "StructuredDocumentation", + "src": "4722:261:18", + "text": " @dev Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`,\n backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in\n {ERC1967Proxy-constructor}." + }, + "id": 3063, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 3040, + "name": "_logic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3033, + "src": "5079:6:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3041, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3037, + "src": "5087:5:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "id": 3042, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 3039, + "name": "ERC1967Proxy", + "nameLocations": [ + "5066:12:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2604, + "src": "5066:12:18" + }, + "nodeType": "ModifierInvocation", + "src": "5066:27:18" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3033, + "mutability": "mutable", + "name": "_logic", + "nameLocation": "5008:6:18", + "nodeType": "VariableDeclaration", + "scope": 3063, + "src": "5000:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3032, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5000:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3035, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "5024:12:18", + "nodeType": "VariableDeclaration", + "scope": 3063, + "src": "5016:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5016:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3037, + "mutability": "mutable", + "name": "_data", + "nameLocation": "5051:5:18", + "nodeType": "VariableDeclaration", + "scope": 3063, + "src": "5038:18:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3036, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5038:5:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4999:58:18" + }, + "returnParameters": { + "id": 3043, + "nodeType": "ParameterList", + "parameters": [], + "src": "5094:0:18" + }, + "scope": 3136, + "src": "4988:296:18", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3071, + "nodeType": "Block", + "src": "5409:30:18", + "statements": [ + { + "expression": { + "id": 3069, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3027, + "src": "5426:6:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 3068, + "id": 3070, + "nodeType": "Return", + "src": "5419:13:18" + } + ] + }, + "documentation": { + "id": 3064, + "nodeType": "StructuredDocumentation", + "src": "5290:56:18", + "text": " @dev Returns the admin of this proxy." + }, + "id": 3072, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_proxyAdmin", + "nameLocation": "5360:11:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3065, + "nodeType": "ParameterList", + "parameters": [], + "src": "5371:2:18" + }, + "returnParameters": { + "id": 3068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3067, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3072, + "src": "5400:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3066, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5400:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5399:9:18" + }, + "scope": 3136, + "src": "5351:88:18", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2934 + ], + "body": { + "id": 3105, + "nodeType": "Block", + "src": "5628:322:18", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3077, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5642:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5646:6:18", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5642:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3079, + "name": "_proxyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3072, + "src": "5656:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_address_$", + "typeString": "function () returns (address)" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5656:13:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5642:27:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3103, + "nodeType": "Block", + "src": "5902:42:18", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3098, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "5916:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_TransparentUpgradeableProxy_$3136_$", + "typeString": "type(contract super TransparentUpgradeableProxy)" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5922:9:18", + "memberName": "_fallback", + "nodeType": "MemberAccess", + "referencedDeclaration": 2934, + "src": "5916:15:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 3101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5916:17:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3102, + "nodeType": "ExpressionStatement", + "src": "5916:17:18" + } + ] + }, + "id": 3104, + "nodeType": "IfStatement", + "src": "5638:306:18", + "trueBody": { + "id": 3097, + "nodeType": "Block", + "src": "5671:225:18", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3082, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5689:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5693:3:18", + "memberName": "sig", + "nodeType": "MemberAccess", + "src": "5689:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "id": 3084, + "name": "ITransparentUpgradeableProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3022, + "src": "5700:28:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ITransparentUpgradeableProxy_$3022_$", + "typeString": "type(contract ITransparentUpgradeableProxy)" + } + }, + "id": 3085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5729:16:18", + "memberName": "upgradeToAndCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 3021, + "src": "5700:45:18", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_payable$_t_address_$_t_bytes_calldata_ptr_$returns$__$", + "typeString": "function ITransparentUpgradeableProxy.upgradeToAndCall(address,bytes calldata) payable" + } + }, + "id": 3086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5746:8:18", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "5700:54:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "5689:65:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3095, + "nodeType": "Block", + "src": "5826:60:18", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3092, + "name": "_dispatchUpgradeToAndCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "5844:25:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 3093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5844:27:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3094, + "nodeType": "ExpressionStatement", + "src": "5844:27:18" + } + ] + }, + "id": 3096, + "nodeType": "IfStatement", + "src": "5685:201:18", + "trueBody": { + "id": 3091, + "nodeType": "Block", + "src": "5756:64:18", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3088, + "name": "ProxyDeniedAdminAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3030, + "src": "5781:22:18", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 3089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5781:24:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3090, + "nodeType": "RevertStatement", + "src": "5774:31:18" + } + ] + } + } + ] + } + } + ] + }, + "documentation": { + "id": 3073, + "nodeType": "StructuredDocumentation", + "src": "5445:131:18", + "text": " @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior." + }, + "id": 3106, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_fallback", + "nameLocation": "5590:9:18", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3075, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5619:8:18" + }, + "parameters": { + "id": 3074, + "nodeType": "ParameterList", + "parameters": [], + "src": "5599:2:18" + }, + "returnParameters": { + "id": 3076, + "nodeType": "ParameterList", + "parameters": [], + "src": "5628:0:18" + }, + "scope": 3136, + "src": "5581:369:18", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3134, + "nodeType": "Block", + "src": "6197:172:18", + "statements": [ + { + "assignments": [ + 3111, + 3113 + ], + "declarations": [ + { + "constant": false, + "id": 3111, + "mutability": "mutable", + "name": "newImplementation", + "nameLocation": "6216:17:18", + "nodeType": "VariableDeclaration", + "scope": 3134, + "src": "6208:25:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3110, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6208:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3113, + "mutability": "mutable", + "name": "data", + "nameLocation": "6248:4:18", + "nodeType": "VariableDeclaration", + "scope": 3134, + "src": "6235:17:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3112, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6235:5:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3126, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "expression": { + "id": 3116, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6267:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6271:4:18", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "6267:8:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexRangeAccess", + "src": "6267:12:18", + "startExpression": { + "hexValue": "34", + "id": 3118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6276:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + } + }, + { + "components": [ + { + "id": 3121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6282:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6282:7:18", + "typeDescriptions": {} + } + }, + { + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6291:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3122, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6291:5:18", + "typeDescriptions": {} + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6281:16:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", + "typeString": "tuple(type(address),type(bytes storage pointer))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", + "typeString": "tuple(type(address),type(bytes storage pointer))" + } + ], + "expression": { + "id": 3114, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "6256:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6260:6:18", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "6256:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6256:42:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$", + "typeString": "tuple(address payable,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6207:91:18" + }, + { + "expression": { + "arguments": [ + { + "id": 3130, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3111, + "src": "6338:17:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3131, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "6357:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3127, + "name": "ERC1967Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2907, + "src": "6308:12:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$2907_$", + "typeString": "type(library ERC1967Utils)" + } + }, + "id": 3129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6321:16:18", + "memberName": "upgradeToAndCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 2726, + "src": "6308:29:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory)" + } + }, + "id": 3132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6308:54:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3133, + "nodeType": "ExpressionStatement", + "src": "6308:54:18" + } + ] + }, + "documentation": { + "id": 3107, + "nodeType": "StructuredDocumentation", + "src": "5956:191:18", + "text": " @dev Upgrade the implementation of the proxy. See {ERC1967Utils-upgradeToAndCall}.\n Requirements:\n - If `data` is empty, `msg.value` must be zero." + }, + "id": 3135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_dispatchUpgradeToAndCall", + "nameLocation": "6161:25:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3108, + "nodeType": "ParameterList", + "parameters": [], + "src": "6186:2:18" + }, + "returnParameters": { + "id": 3109, + "nodeType": "ParameterList", + "parameters": [], + "src": "6197:0:18" + }, + "scope": 3136, + "src": "6152:217:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3137, + "src": "4145:2226:18", + "usedErrors": [ + 2639, + 2644, + 2652, + 3030, + 3149, + 3152 + ], + "usedEvents": [ + 2618, + 2625 + ] + } + ], + "src": "133:6239:18" + }, + "id": 18 + }, + "@openzeppelin/contracts/utils/Address.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "exportedSymbols": { + "Address": [ + 3389 + ] + }, + "id": 3390, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3138, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:19" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Address", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3139, + "nodeType": "StructuredDocumentation", + "src": "127:67:19", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 3389, + "linearizedBaseContracts": [ + 3389 + ], + "name": "Address", + "nameLocation": "203:7:19", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3140, + "nodeType": "StructuredDocumentation", + "src": "217:94:19", + "text": " @dev The ETH balance of the account is not enough to perform the operation." + }, + "errorSelector": "cd786059", + "id": 3144, + "name": "AddressInsufficientBalance", + "nameLocation": "322:26:19", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3142, + "mutability": "mutable", + "name": "account", + "nameLocation": "357:7:19", + "nodeType": "VariableDeclaration", + "scope": 3144, + "src": "349:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "349:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "348:17:19" + }, + "src": "316:50:19" + }, + { + "documentation": { + "id": 3145, + "nodeType": "StructuredDocumentation", + "src": "372:75:19", + "text": " @dev There's no code at `target` (it is not a contract)." + }, + "errorSelector": "9996b315", + "id": 3149, + "name": "AddressEmptyCode", + "nameLocation": "458:16:19", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "target", + "nameLocation": "483:6:19", + "nodeType": "VariableDeclaration", + "scope": 3149, + "src": "475:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3146, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "475:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "474:16:19" + }, + "src": "452:39:19" + }, + { + "documentation": { + "id": 3150, + "nodeType": "StructuredDocumentation", + "src": "497:89:19", + "text": " @dev A call to an address target failed. The target may have reverted." + }, + "errorSelector": "1425ea42", + "id": 3152, + "name": "FailedInnerCall", + "nameLocation": "597:15:19", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "612:2:19" + }, + "src": "591:24:19" + }, + { + "body": { + "id": 3192, + "nodeType": "Block", + "src": "1602:260:19", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3162, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1624:4:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$3389", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$3389", + "typeString": "library Address" + } + ], + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1616:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1616:7:19", + "typeDescriptions": {} + } + }, + "id": 3163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1616:13:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1630:7:19", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "1616:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3165, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3157, + "src": "1640:6:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1616:30:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3175, + "nodeType": "IfStatement", + "src": "1612:109:19", + "trueBody": { + "id": 3174, + "nodeType": "Block", + "src": "1648:73:19", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3170, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1704:4:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$3389", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$3389", + "typeString": "library Address" + } + ], + "id": 3169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1696:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3168, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1696:7:19", + "typeDescriptions": {} + } + }, + "id": 3171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1696:13:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3167, + "name": "AddressInsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3144, + "src": "1669:26:19", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 3172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1669:41:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3173, + "nodeType": "RevertStatement", + "src": "1662:48:19" + } + ] + } + }, + { + "assignments": [ + 3177, + null + ], + "declarations": [ + { + "constant": false, + "id": 3177, + "mutability": "mutable", + "name": "success", + "nameLocation": "1737:7:19", + "nodeType": "VariableDeclaration", + "scope": 3192, + "src": "1732:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3176, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1732:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 3184, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1780:2:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 3178, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3155, + "src": "1750:9:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1760:4:19", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "1750:14:19", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 3180, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3157, + "src": "1772:6:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "1750:29:19", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1750:33:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1731:52:19" + }, + { + "condition": { + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1797:8:19", + "subExpression": { + "id": 3185, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3177, + "src": "1798:7:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3191, + "nodeType": "IfStatement", + "src": "1793:63:19", + "trueBody": { + "id": 3190, + "nodeType": "Block", + "src": "1807:49:19", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3187, + "name": "FailedInnerCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3152, + "src": "1828:15:19", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 3188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1828:17:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3189, + "nodeType": "RevertStatement", + "src": "1821:24:19" + } + ] + } + } + ] + }, + "documentation": { + "id": 3153, + "nodeType": "StructuredDocumentation", + "src": "621:905:19", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 3193, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nameLocation": "1540:9:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3158, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3155, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "1566:9:19", + "nodeType": "VariableDeclaration", + "scope": 3193, + "src": "1550:25:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3154, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1550:15:19", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3157, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1585:6:19", + "nodeType": "VariableDeclaration", + "scope": 3193, + "src": "1577:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1577:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1549:43:19" + }, + "returnParameters": { + "id": 3159, + "nodeType": "ParameterList", + "parameters": [], + "src": "1602:0:19" + }, + "scope": 3389, + "src": "1531:331:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3209, + "nodeType": "Block", + "src": "2794:62:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3204, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3196, + "src": "2833:6:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3205, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3198, + "src": "2841:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 3206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2847:1:19", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3203, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3256, + "src": "2811:21:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256) returns (bytes memory)" + } + }, + "id": 3207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2811:38:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3202, + "id": 3208, + "nodeType": "Return", + "src": "2804:45:19" + } + ] + }, + "documentation": { + "id": 3194, + "nodeType": "StructuredDocumentation", + "src": "1868:832:19", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason or custom error, it is bubbled\n up by this function (like regular Solidity function calls). However, if\n the call reverted with no returned reason, this function reverts with a\n {FailedInnerCall} error.\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert." + }, + "id": 3210, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nameLocation": "2714:12:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3196, + "mutability": "mutable", + "name": "target", + "nameLocation": "2735:6:19", + "nodeType": "VariableDeclaration", + "scope": 3210, + "src": "2727:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3195, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2727:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3198, + "mutability": "mutable", + "name": "data", + "nameLocation": "2756:4:19", + "nodeType": "VariableDeclaration", + "scope": 3210, + "src": "2743:17:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3197, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2743:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2726:35:19" + }, + "returnParameters": { + "id": 3202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3201, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3210, + "src": "2780:12:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3200, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2780:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2779:14:19" + }, + "scope": 3389, + "src": "2705:151:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3255, + "nodeType": "Block", + "src": "3293:279:19", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3224, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3315:4:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$3389", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$3389", + "typeString": "library Address" + } + ], + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3307:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3222, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3307:7:19", + "typeDescriptions": {} + } + }, + "id": 3225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3307:13:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3321:7:19", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "3307:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3227, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3217, + "src": "3331:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3307:29:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3237, + "nodeType": "IfStatement", + "src": "3303:108:19", + "trueBody": { + "id": 3236, + "nodeType": "Block", + "src": "3338:73:19", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3232, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3394:4:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$3389", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$3389", + "typeString": "library Address" + } + ], + "id": 3231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3386:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3386:7:19", + "typeDescriptions": {} + } + }, + "id": 3233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3386:13:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3229, + "name": "AddressInsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3144, + "src": "3359:26:19", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 3234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3359:41:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3235, + "nodeType": "RevertStatement", + "src": "3352:48:19" + } + ] + } + }, + { + "assignments": [ + 3239, + 3241 + ], + "declarations": [ + { + "constant": false, + "id": 3239, + "mutability": "mutable", + "name": "success", + "nameLocation": "3426:7:19", + "nodeType": "VariableDeclaration", + "scope": 3255, + "src": "3421:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3238, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3421:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3241, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "3448:10:19", + "nodeType": "VariableDeclaration", + "scope": 3255, + "src": "3435:23:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3240, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3435:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3248, + "initialValue": { + "arguments": [ + { + "id": 3246, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3215, + "src": "3488:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3242, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3213, + "src": "3462:6:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3469:4:19", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "3462:11:19", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 3244, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3217, + "src": "3481:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "3462:25:19", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3462:31:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3420:73:19" + }, + { + "expression": { + "arguments": [ + { + "id": 3250, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3213, + "src": "3537:6:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3251, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3239, + "src": "3545:7:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 3252, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3241, + "src": "3554:10:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3249, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "3510:26:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bool,bytes memory) view returns (bytes memory)" + } + }, + "id": 3253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3510:55:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3221, + "id": 3254, + "nodeType": "Return", + "src": "3503:62:19" + } + ] + }, + "documentation": { + "id": 3211, + "nodeType": "StructuredDocumentation", + "src": "2862:313:19", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`." + }, + "id": 3256, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nameLocation": "3189:21:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3213, + "mutability": "mutable", + "name": "target", + "nameLocation": "3219:6:19", + "nodeType": "VariableDeclaration", + "scope": 3256, + "src": "3211:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3211:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3215, + "mutability": "mutable", + "name": "data", + "nameLocation": "3240:4:19", + "nodeType": "VariableDeclaration", + "scope": 3256, + "src": "3227:17:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3227:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3217, + "mutability": "mutable", + "name": "value", + "nameLocation": "3254:5:19", + "nodeType": "VariableDeclaration", + "scope": 3256, + "src": "3246:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3246:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3210:50:19" + }, + "returnParameters": { + "id": 3221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3220, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3256, + "src": "3279:12:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3219, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3279:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3278:14:19" + }, + "scope": 3389, + "src": "3180:392:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3281, + "nodeType": "Block", + "src": "3811:154:19", + "statements": [ + { + "assignments": [ + 3267, + 3269 + ], + "declarations": [ + { + "constant": false, + "id": 3267, + "mutability": "mutable", + "name": "success", + "nameLocation": "3827:7:19", + "nodeType": "VariableDeclaration", + "scope": 3281, + "src": "3822:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3266, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3822:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3269, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "3849:10:19", + "nodeType": "VariableDeclaration", + "scope": 3281, + "src": "3836:23:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3268, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3836:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3274, + "initialValue": { + "arguments": [ + { + "id": 3272, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3261, + "src": "3881:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3270, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3259, + "src": "3863:6:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3870:10:19", + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "3863:17:19", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 3273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3863:23:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3821:65:19" + }, + { + "expression": { + "arguments": [ + { + "id": 3276, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3259, + "src": "3930:6:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3277, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3267, + "src": "3938:7:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 3278, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "3947:10:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3275, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "3903:26:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bool,bytes memory) view returns (bytes memory)" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3903:55:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3265, + "id": 3280, + "nodeType": "Return", + "src": "3896:62:19" + } + ] + }, + "documentation": { + "id": 3257, + "nodeType": "StructuredDocumentation", + "src": "3578:128:19", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call." + }, + "id": 3282, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nameLocation": "3720:18:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3259, + "mutability": "mutable", + "name": "target", + "nameLocation": "3747:6:19", + "nodeType": "VariableDeclaration", + "scope": 3282, + "src": "3739:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3258, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3739:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3261, + "mutability": "mutable", + "name": "data", + "nameLocation": "3768:4:19", + "nodeType": "VariableDeclaration", + "scope": 3282, + "src": "3755:17:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3755:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3738:35:19" + }, + "returnParameters": { + "id": 3265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3264, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3282, + "src": "3797:12:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3263, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3797:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3796:14:19" + }, + "scope": 3389, + "src": "3711:254:19", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3307, + "nodeType": "Block", + "src": "4203:156:19", + "statements": [ + { + "assignments": [ + 3293, + 3295 + ], + "declarations": [ + { + "constant": false, + "id": 3293, + "mutability": "mutable", + "name": "success", + "nameLocation": "4219:7:19", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "4214:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3292, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4214:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3295, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "4241:10:19", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "4228:23:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3294, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4228:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3300, + "initialValue": { + "arguments": [ + { + "id": 3298, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "src": "4275:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3296, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3285, + "src": "4255:6:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4262:12:19", + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "4255:19:19", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 3299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4255:25:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4213:67:19" + }, + { + "expression": { + "arguments": [ + { + "id": 3302, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3285, + "src": "4324:6:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3303, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3293, + "src": "4332:7:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 3304, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3295, + "src": "4341:10:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3301, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "4297:26:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bool,bytes memory) view returns (bytes memory)" + } + }, + "id": 3305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4297:55:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3291, + "id": 3306, + "nodeType": "Return", + "src": "4290:62:19" + } + ] + }, + "documentation": { + "id": 3283, + "nodeType": "StructuredDocumentation", + "src": "3971:130:19", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call." + }, + "id": 3308, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nameLocation": "4115:20:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3285, + "mutability": "mutable", + "name": "target", + "nameLocation": "4144:6:19", + "nodeType": "VariableDeclaration", + "scope": 3308, + "src": "4136:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4136:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3287, + "mutability": "mutable", + "name": "data", + "nameLocation": "4165:4:19", + "nodeType": "VariableDeclaration", + "scope": 3308, + "src": "4152:17:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3286, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4152:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4135:35:19" + }, + "returnParameters": { + "id": 3291, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3290, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3308, + "src": "4189:12:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3289, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4189:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4188:14:19" + }, + "scope": 3389, + "src": "4106:253:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3347, + "nodeType": "Block", + "src": "4783:424:19", + "statements": [ + { + "condition": { + "id": 3321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4797:8:19", + "subExpression": { + "id": 3320, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3313, + "src": "4798:7:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3345, + "nodeType": "Block", + "src": "4857:344:19", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3327, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3315, + "src": "5045:10:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5056:6:19", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5045:17:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:1:19", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5045:22:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 3331, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "src": "5071:6:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5078:4:19", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "5071:11:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5083:6:19", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5071:18:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5093:1:19", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5071:23:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5045:49:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3342, + "nodeType": "IfStatement", + "src": "5041:119:19", + "trueBody": { + "id": 3341, + "nodeType": "Block", + "src": "5096:64:19", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3338, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "src": "5138:6:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3337, + "name": "AddressEmptyCode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "5121:16:19", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5121:24:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3340, + "nodeType": "RevertStatement", + "src": "5114:31:19" + } + ] + } + }, + { + "expression": { + "id": 3343, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3315, + "src": "5180:10:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3319, + "id": 3344, + "nodeType": "Return", + "src": "5173:17:19" + } + ] + }, + "id": 3346, + "nodeType": "IfStatement", + "src": "4793:408:19", + "trueBody": { + "id": 3326, + "nodeType": "Block", + "src": "4807:44:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3323, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3315, + "src": "4829:10:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3322, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3388, + "src": "4821:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) pure" + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4821:19:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3325, + "nodeType": "ExpressionStatement", + "src": "4821:19:19" + } + ] + } + } + ] + }, + "documentation": { + "id": 3309, + "nodeType": "StructuredDocumentation", + "src": "4365:255:19", + "text": " @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\n unsuccessful call." + }, + "id": 3348, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCallResultFromTarget", + "nameLocation": "4634:26:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3311, + "mutability": "mutable", + "name": "target", + "nameLocation": "4678:6:19", + "nodeType": "VariableDeclaration", + "scope": 3348, + "src": "4670:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3310, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4670:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3313, + "mutability": "mutable", + "name": "success", + "nameLocation": "4699:7:19", + "nodeType": "VariableDeclaration", + "scope": 3348, + "src": "4694:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3312, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4694:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3315, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "4729:10:19", + "nodeType": "VariableDeclaration", + "scope": 3348, + "src": "4716:23:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3314, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4716:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4660:85:19" + }, + "returnParameters": { + "id": 3319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3318, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3348, + "src": "4769:12:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3317, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4769:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4768:14:19" + }, + "scope": 3389, + "src": "4625:582:19", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3369, + "nodeType": "Block", + "src": "5509:122:19", + "statements": [ + { + "condition": { + "id": 3359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5523:8:19", + "subExpression": { + "id": 3358, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "5524:7:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3367, + "nodeType": "Block", + "src": "5583:42:19", + "statements": [ + { + "expression": { + "id": 3365, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3353, + "src": "5604:10:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3357, + "id": 3366, + "nodeType": "Return", + "src": "5597:17:19" + } + ] + }, + "id": 3368, + "nodeType": "IfStatement", + "src": "5519:106:19", + "trueBody": { + "id": 3364, + "nodeType": "Block", + "src": "5533:44:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3361, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3353, + "src": "5555:10:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3360, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3388, + "src": "5547:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) pure" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5547:19:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "5547:19:19" + } + ] + } + } + ] + }, + "documentation": { + "id": 3349, + "nodeType": "StructuredDocumentation", + "src": "5213:189:19", + "text": " @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n revert reason or with a default {FailedInnerCall} error." + }, + "id": 3370, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCallResult", + "nameLocation": "5416:16:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3351, + "mutability": "mutable", + "name": "success", + "nameLocation": "5438:7:19", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "5433:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3350, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5433:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3353, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "5460:10:19", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "5447:23:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3352, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5447:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5432:39:19" + }, + "returnParameters": { + "id": 3357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3356, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "5495:12:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3355, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5495:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5494:14:19" + }, + "scope": 3389, + "src": "5407:224:19", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3387, + "nodeType": "Block", + "src": "5798:461:19", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3376, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3373, + "src": "5874:10:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5885:6:19", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5874:17:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3378, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5894:1:19", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5874:21:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3385, + "nodeType": "Block", + "src": "6204:49:19", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3382, + "name": "FailedInnerCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3152, + "src": "6225:15:19", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6225:17:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3384, + "nodeType": "RevertStatement", + "src": "6218:24:19" + } + ] + }, + "id": 3386, + "nodeType": "IfStatement", + "src": "5870:383:19", + "trueBody": { + "id": 3381, + "nodeType": "Block", + "src": "5897:301:19", + "statements": [ + { + "AST": { + "nativeSrc": "6055:133:19", + "nodeType": "YulBlock", + "src": "6055:133:19", + "statements": [ + { + "nativeSrc": "6073:40:19", + "nodeType": "YulVariableDeclaration", + "src": "6073:40:19", + "value": { + "arguments": [ + { + "name": "returndata", + "nativeSrc": "6102:10:19", + "nodeType": "YulIdentifier", + "src": "6102:10:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6096:5:19", + "nodeType": "YulIdentifier", + "src": "6096:5:19" + }, + "nativeSrc": "6096:17:19", + "nodeType": "YulFunctionCall", + "src": "6096:17:19" + }, + "variables": [ + { + "name": "returndata_size", + "nativeSrc": "6077:15:19", + "nodeType": "YulTypedName", + "src": "6077:15:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6141:2:19", + "nodeType": "YulLiteral", + "src": "6141:2:19", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nativeSrc": "6145:10:19", + "nodeType": "YulIdentifier", + "src": "6145:10:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6137:3:19", + "nodeType": "YulIdentifier", + "src": "6137:3:19" + }, + "nativeSrc": "6137:19:19", + "nodeType": "YulFunctionCall", + "src": "6137:19:19" + }, + { + "name": "returndata_size", + "nativeSrc": "6158:15:19", + "nodeType": "YulIdentifier", + "src": "6158:15:19" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6130:6:19", + "nodeType": "YulIdentifier", + "src": "6130:6:19" + }, + "nativeSrc": "6130:44:19", + "nodeType": "YulFunctionCall", + "src": "6130:44:19" + }, + "nativeSrc": "6130:44:19", + "nodeType": "YulExpressionStatement", + "src": "6130:44:19" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3373, + "isOffset": false, + "isSlot": false, + "src": "6102:10:19", + "valueSize": 1 + }, + { + "declaration": 3373, + "isOffset": false, + "isSlot": false, + "src": "6145:10:19", + "valueSize": 1 + } + ], + "id": 3380, + "nodeType": "InlineAssembly", + "src": "6046:142:19" + } + ] + } + } + ] + }, + "documentation": { + "id": 3371, + "nodeType": "StructuredDocumentation", + "src": "5637:101:19", + "text": " @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}." + }, + "id": 3388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revert", + "nameLocation": "5752:7:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3373, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "5773:10:19", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "5760:23:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3372, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5760:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5759:25:19" + }, + "returnParameters": { + "id": 3375, + "nodeType": "ParameterList", + "parameters": [], + "src": "5798:0:19" + }, + "scope": 3389, + "src": "5743:516:19", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3390, + "src": "195:6066:19", + "usedErrors": [ + 3144, + 3149, + 3152 + ], + "usedEvents": [] + } + ], + "src": "101:6161:19" + }, + "id": 19 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 3419 + ] + }, + "id": 3420, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3391, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:20" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 3392, + "nodeType": "StructuredDocumentation", + "src": "127:496:20", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 3419, + "linearizedBaseContracts": [ + 3419 + ], + "name": "Context", + "nameLocation": "642:7:20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3400, + "nodeType": "Block", + "src": "718:34:20", + "statements": [ + { + "expression": { + "expression": { + "id": 3397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:20", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 3396, + "id": 3399, + "nodeType": "Return", + "src": "728:17:20" + } + ] + }, + "id": 3401, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3393, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:20" + }, + "returnParameters": { + "id": 3396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3395, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3401, + "src": "709:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3394, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:20" + }, + "scope": 3419, + "src": "656:96:20", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3409, + "nodeType": "Block", + "src": "825:32:20", + "statements": [ + { + "expression": { + "expression": { + "id": 3406, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:20", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 3405, + "id": 3408, + "nodeType": "Return", + "src": "835:15:20" + } + ] + }, + "id": 3410, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3402, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:20" + }, + "returnParameters": { + "id": 3405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3404, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3410, + "src": "809:14:20", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3403, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:20" + }, + "scope": 3419, + "src": "758:99:20", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3417, + "nodeType": "Block", + "src": "935:25:20", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 3415, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 3414, + "id": 3416, + "nodeType": "Return", + "src": "945:8:20" + } + ] + }, + "id": 3418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3411, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:20" + }, + "returnParameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3418, + "src": "926:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3412, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:20" + }, + "scope": 3419, + "src": "863:97:20", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3420, + "src": "624:338:20", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:20" + }, + "id": 20 + }, + "@openzeppelin/contracts/utils/Pausable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Pausable.sol", + "exportedSymbols": { + "Context": [ + 3419 + ], + "Pausable": [ + 3536 + ] + }, + "id": 3537, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3421, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:21" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 3423, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3537, + "sourceUnit": 3420, + "src": "128:45:21", + "symbolAliases": [ + { + "foreign": { + "id": 3422, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3419, + "src": "136:7:21", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 3425, + "name": "Context", + "nameLocations": [ + "645:7:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3419, + "src": "645:7:21" + }, + "id": 3426, + "nodeType": "InheritanceSpecifier", + "src": "645:7:21" + } + ], + "canonicalName": "Pausable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 3424, + "nodeType": "StructuredDocumentation", + "src": "175:439:21", + "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." + }, + "fullyImplemented": true, + "id": 3536, + "linearizedBaseContracts": [ + 3536, + 3419 + ], + "name": "Pausable", + "nameLocation": "633:8:21", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3428, + "mutability": "mutable", + "name": "_paused", + "nameLocation": "672:7:21", + "nodeType": "VariableDeclaration", + "scope": 3536, + "src": "659:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3427, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": { + "id": 3429, + "nodeType": "StructuredDocumentation", + "src": "686:73:21", + "text": " @dev Emitted when the pause is triggered by `account`." + }, + "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", + "id": 3433, + "name": "Paused", + "nameLocation": "770:6:21", + "nodeType": "EventDefinition", + "parameters": { + "id": 3432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3431, + "indexed": false, + "mutability": "mutable", + "name": "account", + "nameLocation": "785:7:21", + "nodeType": "VariableDeclaration", + "scope": 3433, + "src": "777:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3430, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "777:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "776:17:21" + }, + "src": "764:30:21" + }, + { + "anonymous": false, + "documentation": { + "id": 3434, + "nodeType": "StructuredDocumentation", + "src": "800:70:21", + "text": " @dev Emitted when the pause is lifted by `account`." + }, + "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", + "id": 3438, + "name": "Unpaused", + "nameLocation": "881:8:21", + "nodeType": "EventDefinition", + "parameters": { + "id": 3437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3436, + "indexed": false, + "mutability": "mutable", + "name": "account", + "nameLocation": "898:7:21", + "nodeType": "VariableDeclaration", + "scope": 3438, + "src": "890:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3435, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "890:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "889:17:21" + }, + "src": "875:32:21" + }, + { + "documentation": { + "id": 3439, + "nodeType": "StructuredDocumentation", + "src": "913:76:21", + "text": " @dev The operation failed because the contract is paused." + }, + "errorSelector": "d93c0665", + "id": 3441, + "name": "EnforcedPause", + "nameLocation": "1000:13:21", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3440, + "nodeType": "ParameterList", + "parameters": [], + "src": "1013:2:21" + }, + "src": "994:22:21" + }, + { + "documentation": { + "id": 3442, + "nodeType": "StructuredDocumentation", + "src": "1022:80:21", + "text": " @dev The operation failed because the contract is not paused." + }, + "errorSelector": "8dfc202b", + "id": 3444, + "name": "ExpectedPause", + "nameLocation": "1113:13:21", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3443, + "nodeType": "ParameterList", + "parameters": [], + "src": "1126:2:21" + }, + "src": "1107:22:21" + }, + { + "body": { + "id": 3452, + "nodeType": "Block", + "src": "1221:32:21", + "statements": [ + { + "expression": { + "id": 3450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3448, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3428, + "src": "1231:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1241:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1231:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3451, + "nodeType": "ExpressionStatement", + "src": "1231:15:21" + } + ] + }, + "documentation": { + "id": 3445, + "nodeType": "StructuredDocumentation", + "src": "1135:67:21", + "text": " @dev Initializes the contract in unpaused state." + }, + "id": 3453, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3446, + "nodeType": "ParameterList", + "parameters": [], + "src": "1218:2:21" + }, + "returnParameters": { + "id": 3447, + "nodeType": "ParameterList", + "parameters": [], + "src": "1221:0:21" + }, + "scope": 3536, + "src": "1207:46:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3460, + "nodeType": "Block", + "src": "1464:47:21", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3456, + "name": "_requireNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3490, + "src": "1474:17:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 3457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1474:19:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3458, + "nodeType": "ExpressionStatement", + "src": "1474:19:21" + }, + { + "id": 3459, + "nodeType": "PlaceholderStatement", + "src": "1503:1:21" + } + ] + }, + "documentation": { + "id": 3454, + "nodeType": "StructuredDocumentation", + "src": "1259:175:21", + "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." + }, + "id": 3461, + "name": "whenNotPaused", + "nameLocation": "1448:13:21", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3455, + "nodeType": "ParameterList", + "parameters": [], + "src": "1461:2:21" + }, + "src": "1439:72:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3468, + "nodeType": "Block", + "src": "1711:44:21", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3464, + "name": "_requirePaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3503, + "src": "1721:14:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 3465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1721:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3466, + "nodeType": "ExpressionStatement", + "src": "1721:16:21" + }, + { + "id": 3467, + "nodeType": "PlaceholderStatement", + "src": "1747:1:21" + } + ] + }, + "documentation": { + "id": 3462, + "nodeType": "StructuredDocumentation", + "src": "1517:167:21", + "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." + }, + "id": 3469, + "name": "whenPaused", + "nameLocation": "1698:10:21", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3463, + "nodeType": "ParameterList", + "parameters": [], + "src": "1708:2:21" + }, + "src": "1689:66:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3477, + "nodeType": "Block", + "src": "1903:31:21", + "statements": [ + { + "expression": { + "id": 3475, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3428, + "src": "1920:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3474, + "id": 3476, + "nodeType": "Return", + "src": "1913:14:21" + } + ] + }, + "documentation": { + "id": 3470, + "nodeType": "StructuredDocumentation", + "src": "1761:84:21", + "text": " @dev Returns true if the contract is paused, and false otherwise." + }, + "functionSelector": "5c975abb", + "id": 3478, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "paused", + "nameLocation": "1859:6:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3471, + "nodeType": "ParameterList", + "parameters": [], + "src": "1865:2:21" + }, + "returnParameters": { + "id": 3474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3473, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3478, + "src": "1897:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3472, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1897:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1896:6:21" + }, + "scope": 3536, + "src": "1850:84:21", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3489, + "nodeType": "Block", + "src": "2053:77:21", + "statements": [ + { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3482, + "name": "paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3478, + "src": "2067:6:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2067:8:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3488, + "nodeType": "IfStatement", + "src": "2063:61:21", + "trueBody": { + "id": 3487, + "nodeType": "Block", + "src": "2077:47:21", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3484, + "name": "EnforcedPause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "2098:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 3485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2098:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3486, + "nodeType": "RevertStatement", + "src": "2091:22:21" + } + ] + } + } + ] + }, + "documentation": { + "id": 3479, + "nodeType": "StructuredDocumentation", + "src": "1940:57:21", + "text": " @dev Throws if the contract is paused." + }, + "id": 3490, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_requireNotPaused", + "nameLocation": "2011:17:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3480, + "nodeType": "ParameterList", + "parameters": [], + "src": "2028:2:21" + }, + "returnParameters": { + "id": 3481, + "nodeType": "ParameterList", + "parameters": [], + "src": "2053:0:21" + }, + "scope": 3536, + "src": "2002:128:21", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3502, + "nodeType": "Block", + "src": "2250:78:21", + "statements": [ + { + "condition": { + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2264:9:21", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3494, + "name": "paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3478, + "src": "2265:6:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 3495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2265:8:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3501, + "nodeType": "IfStatement", + "src": "2260:62:21", + "trueBody": { + "id": 3500, + "nodeType": "Block", + "src": "2275:47:21", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3497, + "name": "ExpectedPause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3444, + "src": "2296:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 3498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2296:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3499, + "nodeType": "RevertStatement", + "src": "2289:22:21" + } + ] + } + } + ] + }, + "documentation": { + "id": 3491, + "nodeType": "StructuredDocumentation", + "src": "2136:61:21", + "text": " @dev Throws if the contract is not paused." + }, + "id": 3503, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_requirePaused", + "nameLocation": "2211:14:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3492, + "nodeType": "ParameterList", + "parameters": [], + "src": "2225:2:21" + }, + "returnParameters": { + "id": 3493, + "nodeType": "ParameterList", + "parameters": [], + "src": "2250:0:21" + }, + "scope": 3536, + "src": "2202:126:21", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3518, + "nodeType": "Block", + "src": "2512:66:21", + "statements": [ + { + "expression": { + "id": 3511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3509, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3428, + "src": "2522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 3510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2532:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2522:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3512, + "nodeType": "ExpressionStatement", + "src": "2522:14:21" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3514, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "2558:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 3515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2558:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3513, + "name": "Paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3433, + "src": "2551:6:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2551:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3517, + "nodeType": "EmitStatement", + "src": "2546:25:21" + } + ] + }, + "documentation": { + "id": 3504, + "nodeType": "StructuredDocumentation", + "src": "2334:124:21", + "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." + }, + "id": 3519, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3507, + "kind": "modifierInvocation", + "modifierName": { + "id": 3506, + "name": "whenNotPaused", + "nameLocations": [ + "2498:13:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3461, + "src": "2498:13:21" + }, + "nodeType": "ModifierInvocation", + "src": "2498:13:21" + } + ], + "name": "_pause", + "nameLocation": "2472:6:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3505, + "nodeType": "ParameterList", + "parameters": [], + "src": "2478:2:21" + }, + "returnParameters": { + "id": 3508, + "nodeType": "ParameterList", + "parameters": [], + "src": "2512:0:21" + }, + "scope": 3536, + "src": "2463:115:21", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3534, + "nodeType": "Block", + "src": "2758:69:21", + "statements": [ + { + "expression": { + "id": 3527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3525, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3428, + "src": "2768:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 3526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2778:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2768:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3528, + "nodeType": "ExpressionStatement", + "src": "2768:15:21" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3530, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "2807:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 3531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2807:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3529, + "name": "Unpaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3438, + "src": "2798:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2798:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3533, + "nodeType": "EmitStatement", + "src": "2793:27:21" + } + ] + }, + "documentation": { + "id": 3520, + "nodeType": "StructuredDocumentation", + "src": "2584:121:21", + "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." + }, + "id": 3535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3523, + "kind": "modifierInvocation", + "modifierName": { + "id": 3522, + "name": "whenPaused", + "nameLocations": [ + "2747:10:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3469, + "src": "2747:10:21" + }, + "nodeType": "ModifierInvocation", + "src": "2747:10:21" + } + ], + "name": "_unpause", + "nameLocation": "2719:8:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3521, + "nodeType": "ParameterList", + "parameters": [], + "src": "2727:2:21" + }, + "returnParameters": { + "id": 3524, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 3536, + "src": "2710:117:21", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3537, + "src": "615:2214:21", + "usedErrors": [ + 3441, + 3444 + ], + "usedEvents": [ + 3433, + 3438 + ] + } + ], + "src": "102:2728:21" + }, + "id": 21 + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", + "exportedSymbols": { + "StorageSlot": [ + 3646 + ] + }, + "id": 3647, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3538, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "193:24:22" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "StorageSlot", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3539, + "nodeType": "StructuredDocumentation", + "src": "219:1025:22", + "text": " @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```solidity\n contract ERC1967 {\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(newImplementation.code.length > 0);\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```" + }, + "fullyImplemented": true, + "id": 3646, + "linearizedBaseContracts": [ + 3646 + ], + "name": "StorageSlot", + "nameLocation": "1253:11:22", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "StorageSlot.AddressSlot", + "id": 3542, + "members": [ + { + "constant": false, + "id": 3541, + "mutability": "mutable", + "name": "value", + "nameLocation": "1308:5:22", + "nodeType": "VariableDeclaration", + "scope": 3542, + "src": "1300:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1300:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSlot", + "nameLocation": "1278:11:22", + "nodeType": "StructDefinition", + "scope": 3646, + "src": "1271:49:22", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.BooleanSlot", + "id": 3545, + "members": [ + { + "constant": false, + "id": 3544, + "mutability": "mutable", + "name": "value", + "nameLocation": "1360:5:22", + "nodeType": "VariableDeclaration", + "scope": 3545, + "src": "1355:10:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3543, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1355:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "BooleanSlot", + "nameLocation": "1333:11:22", + "nodeType": "StructDefinition", + "scope": 3646, + "src": "1326:46:22", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.Bytes32Slot", + "id": 3548, + "members": [ + { + "constant": false, + "id": 3547, + "mutability": "mutable", + "name": "value", + "nameLocation": "1415:5:22", + "nodeType": "VariableDeclaration", + "scope": 3548, + "src": "1407:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3546, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1407:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Slot", + "nameLocation": "1385:11:22", + "nodeType": "StructDefinition", + "scope": 3646, + "src": "1378:49:22", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.Uint256Slot", + "id": 3551, + "members": [ + { + "constant": false, + "id": 3550, + "mutability": "mutable", + "name": "value", + "nameLocation": "1470:5:22", + "nodeType": "VariableDeclaration", + "scope": 3551, + "src": "1462:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1462:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Uint256Slot", + "nameLocation": "1440:11:22", + "nodeType": "StructDefinition", + "scope": 3646, + "src": "1433:49:22", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.StringSlot", + "id": 3554, + "members": [ + { + "constant": false, + "id": 3553, + "mutability": "mutable", + "name": "value", + "nameLocation": "1523:5:22", + "nodeType": "VariableDeclaration", + "scope": 3554, + "src": "1516:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3552, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1516:6:22", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "StringSlot", + "nameLocation": "1495:10:22", + "nodeType": "StructDefinition", + "scope": 3646, + "src": "1488:47:22", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.BytesSlot", + "id": 3557, + "members": [ + { + "constant": false, + "id": 3556, + "mutability": "mutable", + "name": "value", + "nameLocation": "1574:5:22", + "nodeType": "VariableDeclaration", + "scope": 3557, + "src": "1568:11:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3555, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1568:5:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "BytesSlot", + "nameLocation": "1548:9:22", + "nodeType": "StructDefinition", + "scope": 3646, + "src": "1541:45:22", + "visibility": "public" + }, + { + "body": { + "id": 3567, + "nodeType": "Block", + "src": "1768:106:22", + "statements": [ + { + "AST": { + "nativeSrc": "1830:38:22", + "nodeType": "YulBlock", + "src": "1830:38:22", + "statements": [ + { + "nativeSrc": "1844:14:22", + "nodeType": "YulAssignment", + "src": "1844:14:22", + "value": { + "name": "slot", + "nativeSrc": "1854:4:22", + "nodeType": "YulIdentifier", + "src": "1854:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "1844:6:22", + "nodeType": "YulIdentifier", + "src": "1844:6:22" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3564, + "isOffset": false, + "isSlot": true, + "src": "1844:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 3560, + "isOffset": false, + "isSlot": false, + "src": "1854:4:22", + "valueSize": 1 + } + ], + "id": 3566, + "nodeType": "InlineAssembly", + "src": "1821:47:22" + } + ] + }, + "documentation": { + "id": 3558, + "nodeType": "StructuredDocumentation", + "src": "1592:87:22", + "text": " @dev Returns an `AddressSlot` with member `value` located at `slot`." + }, + "id": 3568, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAddressSlot", + "nameLocation": "1693:14:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3561, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3560, + "mutability": "mutable", + "name": "slot", + "nameLocation": "1716:4:22", + "nodeType": "VariableDeclaration", + "scope": 3568, + "src": "1708:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3559, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1708:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1707:14:22" + }, + "returnParameters": { + "id": 3565, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3564, + "mutability": "mutable", + "name": "r", + "nameLocation": "1765:1:22", + "nodeType": "VariableDeclaration", + "scope": 3568, + "src": "1745:21:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$3542_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + }, + "typeName": { + "id": 3563, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3562, + "name": "AddressSlot", + "nameLocations": [ + "1745:11:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3542, + "src": "1745:11:22" + }, + "referencedDeclaration": 3542, + "src": "1745:11:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$3542_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + } + }, + "visibility": "internal" + } + ], + "src": "1744:23:22" + }, + "scope": 3646, + "src": "1684:190:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3578, + "nodeType": "Block", + "src": "2056:106:22", + "statements": [ + { + "AST": { + "nativeSrc": "2118:38:22", + "nodeType": "YulBlock", + "src": "2118:38:22", + "statements": [ + { + "nativeSrc": "2132:14:22", + "nodeType": "YulAssignment", + "src": "2132:14:22", + "value": { + "name": "slot", + "nativeSrc": "2142:4:22", + "nodeType": "YulIdentifier", + "src": "2142:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2132:6:22", + "nodeType": "YulIdentifier", + "src": "2132:6:22" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3575, + "isOffset": false, + "isSlot": true, + "src": "2132:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 3571, + "isOffset": false, + "isSlot": false, + "src": "2142:4:22", + "valueSize": 1 + } + ], + "id": 3577, + "nodeType": "InlineAssembly", + "src": "2109:47:22" + } + ] + }, + "documentation": { + "id": 3569, + "nodeType": "StructuredDocumentation", + "src": "1880:87:22", + "text": " @dev Returns an `BooleanSlot` with member `value` located at `slot`." + }, + "id": 3579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBooleanSlot", + "nameLocation": "1981:14:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3571, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2004:4:22", + "nodeType": "VariableDeclaration", + "scope": 3579, + "src": "1996:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3570, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1996:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1995:14:22" + }, + "returnParameters": { + "id": 3576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3575, + "mutability": "mutable", + "name": "r", + "nameLocation": "2053:1:22", + "nodeType": "VariableDeclaration", + "scope": 3579, + "src": "2033:21:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BooleanSlot_$3545_storage_ptr", + "typeString": "struct StorageSlot.BooleanSlot" + }, + "typeName": { + "id": 3574, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3573, + "name": "BooleanSlot", + "nameLocations": [ + "2033:11:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3545, + "src": "2033:11:22" + }, + "referencedDeclaration": 3545, + "src": "2033:11:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BooleanSlot_$3545_storage_ptr", + "typeString": "struct StorageSlot.BooleanSlot" + } + }, + "visibility": "internal" + } + ], + "src": "2032:23:22" + }, + "scope": 3646, + "src": "1972:190:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3589, + "nodeType": "Block", + "src": "2344:106:22", + "statements": [ + { + "AST": { + "nativeSrc": "2406:38:22", + "nodeType": "YulBlock", + "src": "2406:38:22", + "statements": [ + { + "nativeSrc": "2420:14:22", + "nodeType": "YulAssignment", + "src": "2420:14:22", + "value": { + "name": "slot", + "nativeSrc": "2430:4:22", + "nodeType": "YulIdentifier", + "src": "2430:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2420:6:22", + "nodeType": "YulIdentifier", + "src": "2420:6:22" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3586, + "isOffset": false, + "isSlot": true, + "src": "2420:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 3582, + "isOffset": false, + "isSlot": false, + "src": "2430:4:22", + "valueSize": 1 + } + ], + "id": 3588, + "nodeType": "InlineAssembly", + "src": "2397:47:22" + } + ] + }, + "documentation": { + "id": 3580, + "nodeType": "StructuredDocumentation", + "src": "2168:87:22", + "text": " @dev Returns an `Bytes32Slot` with member `value` located at `slot`." + }, + "id": 3590, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytes32Slot", + "nameLocation": "2269:14:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3582, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2292:4:22", + "nodeType": "VariableDeclaration", + "scope": 3590, + "src": "2284:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3581, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2284:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2283:14:22" + }, + "returnParameters": { + "id": 3587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3586, + "mutability": "mutable", + "name": "r", + "nameLocation": "2341:1:22", + "nodeType": "VariableDeclaration", + "scope": 3590, + "src": "2321:21:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$3548_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + }, + "typeName": { + "id": 3585, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3584, + "name": "Bytes32Slot", + "nameLocations": [ + "2321:11:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3548, + "src": "2321:11:22" + }, + "referencedDeclaration": 3548, + "src": "2321:11:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$3548_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2320:23:22" + }, + "scope": 3646, + "src": "2260:190:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3600, + "nodeType": "Block", + "src": "2632:106:22", + "statements": [ + { + "AST": { + "nativeSrc": "2694:38:22", + "nodeType": "YulBlock", + "src": "2694:38:22", + "statements": [ + { + "nativeSrc": "2708:14:22", + "nodeType": "YulAssignment", + "src": "2708:14:22", + "value": { + "name": "slot", + "nativeSrc": "2718:4:22", + "nodeType": "YulIdentifier", + "src": "2718:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2708:6:22", + "nodeType": "YulIdentifier", + "src": "2708:6:22" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3597, + "isOffset": false, + "isSlot": true, + "src": "2708:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 3593, + "isOffset": false, + "isSlot": false, + "src": "2718:4:22", + "valueSize": 1 + } + ], + "id": 3599, + "nodeType": "InlineAssembly", + "src": "2685:47:22" + } + ] + }, + "documentation": { + "id": 3591, + "nodeType": "StructuredDocumentation", + "src": "2456:87:22", + "text": " @dev Returns an `Uint256Slot` with member `value` located at `slot`." + }, + "id": 3601, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUint256Slot", + "nameLocation": "2557:14:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3593, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2580:4:22", + "nodeType": "VariableDeclaration", + "scope": 3601, + "src": "2572:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3592, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2572:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2571:14:22" + }, + "returnParameters": { + "id": 3598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3597, + "mutability": "mutable", + "name": "r", + "nameLocation": "2629:1:22", + "nodeType": "VariableDeclaration", + "scope": 3601, + "src": "2609:21:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$3551_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + }, + "typeName": { + "id": 3596, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3595, + "name": "Uint256Slot", + "nameLocations": [ + "2609:11:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3551, + "src": "2609:11:22" + }, + "referencedDeclaration": 3551, + "src": "2609:11:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$3551_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2608:23:22" + }, + "scope": 3646, + "src": "2548:190:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3611, + "nodeType": "Block", + "src": "2917:106:22", + "statements": [ + { + "AST": { + "nativeSrc": "2979:38:22", + "nodeType": "YulBlock", + "src": "2979:38:22", + "statements": [ + { + "nativeSrc": "2993:14:22", + "nodeType": "YulAssignment", + "src": "2993:14:22", + "value": { + "name": "slot", + "nativeSrc": "3003:4:22", + "nodeType": "YulIdentifier", + "src": "3003:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2993:6:22", + "nodeType": "YulIdentifier", + "src": "2993:6:22" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3608, + "isOffset": false, + "isSlot": true, + "src": "2993:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 3604, + "isOffset": false, + "isSlot": false, + "src": "3003:4:22", + "valueSize": 1 + } + ], + "id": 3610, + "nodeType": "InlineAssembly", + "src": "2970:47:22" + } + ] + }, + "documentation": { + "id": 3602, + "nodeType": "StructuredDocumentation", + "src": "2744:86:22", + "text": " @dev Returns an `StringSlot` with member `value` located at `slot`." + }, + "id": 3612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStringSlot", + "nameLocation": "2844:13:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3604, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2866:4:22", + "nodeType": "VariableDeclaration", + "scope": 3612, + "src": "2858:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3603, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2858:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2857:14:22" + }, + "returnParameters": { + "id": 3609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3608, + "mutability": "mutable", + "name": "r", + "nameLocation": "2914:1:22", + "nodeType": "VariableDeclaration", + "scope": 3612, + "src": "2895:20:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$3554_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + }, + "typeName": { + "id": 3607, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3606, + "name": "StringSlot", + "nameLocations": [ + "2895:10:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3554, + "src": "2895:10:22" + }, + "referencedDeclaration": 3554, + "src": "2895:10:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$3554_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + } + }, + "visibility": "internal" + } + ], + "src": "2894:22:22" + }, + "scope": 3646, + "src": "2835:188:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3622, + "nodeType": "Block", + "src": "3225:112:22", + "statements": [ + { + "AST": { + "nativeSrc": "3287:44:22", + "nodeType": "YulBlock", + "src": "3287:44:22", + "statements": [ + { + "nativeSrc": "3301:20:22", + "nodeType": "YulAssignment", + "src": "3301:20:22", + "value": { + "name": "store.slot", + "nativeSrc": "3311:10:22", + "nodeType": "YulIdentifier", + "src": "3311:10:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3301:6:22", + "nodeType": "YulIdentifier", + "src": "3301:6:22" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3619, + "isOffset": false, + "isSlot": true, + "src": "3301:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 3615, + "isOffset": false, + "isSlot": true, + "src": "3311:10:22", + "suffix": "slot", + "valueSize": 1 + } + ], + "id": 3621, + "nodeType": "InlineAssembly", + "src": "3278:53:22" + } + ] + }, + "documentation": { + "id": 3613, + "nodeType": "StructuredDocumentation", + "src": "3029:101:22", + "text": " @dev Returns an `StringSlot` representation of the string storage pointer `store`." + }, + "id": 3623, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStringSlot", + "nameLocation": "3144:13:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3616, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3615, + "mutability": "mutable", + "name": "store", + "nameLocation": "3173:5:22", + "nodeType": "VariableDeclaration", + "scope": 3623, + "src": "3158:20:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3614, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3158:6:22", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3157:22:22" + }, + "returnParameters": { + "id": 3620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3619, + "mutability": "mutable", + "name": "r", + "nameLocation": "3222:1:22", + "nodeType": "VariableDeclaration", + "scope": 3623, + "src": "3203:20:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$3554_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + }, + "typeName": { + "id": 3618, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3617, + "name": "StringSlot", + "nameLocations": [ + "3203:10:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3554, + "src": "3203:10:22" + }, + "referencedDeclaration": 3554, + "src": "3203:10:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$3554_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3202:22:22" + }, + "scope": 3646, + "src": "3135:202:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3633, + "nodeType": "Block", + "src": "3513:106:22", + "statements": [ + { + "AST": { + "nativeSrc": "3575:38:22", + "nodeType": "YulBlock", + "src": "3575:38:22", + "statements": [ + { + "nativeSrc": "3589:14:22", + "nodeType": "YulAssignment", + "src": "3589:14:22", + "value": { + "name": "slot", + "nativeSrc": "3599:4:22", + "nodeType": "YulIdentifier", + "src": "3599:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3589:6:22", + "nodeType": "YulIdentifier", + "src": "3589:6:22" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3630, + "isOffset": false, + "isSlot": true, + "src": "3589:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 3626, + "isOffset": false, + "isSlot": false, + "src": "3599:4:22", + "valueSize": 1 + } + ], + "id": 3632, + "nodeType": "InlineAssembly", + "src": "3566:47:22" + } + ] + }, + "documentation": { + "id": 3624, + "nodeType": "StructuredDocumentation", + "src": "3343:85:22", + "text": " @dev Returns an `BytesSlot` with member `value` located at `slot`." + }, + "id": 3634, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytesSlot", + "nameLocation": "3442:12:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3626, + "mutability": "mutable", + "name": "slot", + "nameLocation": "3463:4:22", + "nodeType": "VariableDeclaration", + "scope": 3634, + "src": "3455:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3625, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3455:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3454:14:22" + }, + "returnParameters": { + "id": 3631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3630, + "mutability": "mutable", + "name": "r", + "nameLocation": "3510:1:22", + "nodeType": "VariableDeclaration", + "scope": 3634, + "src": "3492:19:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$3557_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + }, + "typeName": { + "id": 3629, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3628, + "name": "BytesSlot", + "nameLocations": [ + "3492:9:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3557, + "src": "3492:9:22" + }, + "referencedDeclaration": 3557, + "src": "3492:9:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$3557_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3491:21:22" + }, + "scope": 3646, + "src": "3433:186:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3644, + "nodeType": "Block", + "src": "3816:112:22", + "statements": [ + { + "AST": { + "nativeSrc": "3878:44:22", + "nodeType": "YulBlock", + "src": "3878:44:22", + "statements": [ + { + "nativeSrc": "3892:20:22", + "nodeType": "YulAssignment", + "src": "3892:20:22", + "value": { + "name": "store.slot", + "nativeSrc": "3902:10:22", + "nodeType": "YulIdentifier", + "src": "3902:10:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3892:6:22", + "nodeType": "YulIdentifier", + "src": "3892:6:22" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3641, + "isOffset": false, + "isSlot": true, + "src": "3892:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 3637, + "isOffset": false, + "isSlot": true, + "src": "3902:10:22", + "suffix": "slot", + "valueSize": 1 + } + ], + "id": 3643, + "nodeType": "InlineAssembly", + "src": "3869:53:22" + } + ] + }, + "documentation": { + "id": 3635, + "nodeType": "StructuredDocumentation", + "src": "3625:99:22", + "text": " @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`." + }, + "id": 3645, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytesSlot", + "nameLocation": "3738:12:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3637, + "mutability": "mutable", + "name": "store", + "nameLocation": "3765:5:22", + "nodeType": "VariableDeclaration", + "scope": 3645, + "src": "3751:19:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3636, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3751:5:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3750:21:22" + }, + "returnParameters": { + "id": 3642, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3641, + "mutability": "mutable", + "name": "r", + "nameLocation": "3813:1:22", + "nodeType": "VariableDeclaration", + "scope": 3645, + "src": "3795:19:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$3557_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + }, + "typeName": { + "id": 3640, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3639, + "name": "BytesSlot", + "nameLocations": [ + "3795:9:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3557, + "src": "3795:9:22" + }, + "referencedDeclaration": 3557, + "src": "3795:9:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$3557_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3794:21:22" + }, + "scope": 3646, + "src": "3729:199:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3647, + "src": "1245:2685:22", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "193:3738:22" + }, + "id": 22 + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "exportedSymbols": { + "ERC165": [ + 3670 + ], + "IERC165": [ + 3682 + ] + }, + "id": 3671, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3648, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "114:24:23" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 3650, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3671, + "sourceUnit": 3683, + "src": "140:38:23", + "symbolAliases": [ + { + "foreign": { + "id": 3649, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3682, + "src": "148:7:23", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 3652, + "name": "IERC165", + "nameLocations": [ + "687:7:23" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3682, + "src": "687:7:23" + }, + "id": 3653, + "nodeType": "InheritanceSpecifier", + "src": "687:7:23" + } + ], + "canonicalName": "ERC165", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 3651, + "nodeType": "StructuredDocumentation", + "src": "180:478:23", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```" + }, + "fullyImplemented": true, + "id": 3670, + "linearizedBaseContracts": [ + 3670, + 3682 + ], + "name": "ERC165", + "nameLocation": "677:6:23", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 3681 + ], + "body": { + "id": 3668, + "nodeType": "Block", + "src": "844:64:23", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3661, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3656, + "src": "861:11:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 3663, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3682, + "src": "881:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$3682_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$3682_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 3662, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "876:4:23", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "876:13:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$3682", + "typeString": "type(contract IERC165)" + } + }, + "id": 3665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "890:11:23", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "876:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "861:40:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3660, + "id": 3667, + "nodeType": "Return", + "src": "854:47:23" + } + ] + }, + "documentation": { + "id": 3654, + "nodeType": "StructuredDocumentation", + "src": "701:56:23", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 3669, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "771:17:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3656, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "796:11:23", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "789:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3655, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "789:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "788:20:23" + }, + "returnParameters": { + "id": 3660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3659, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "838:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3658, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "838:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "837:6:23" + }, + "scope": 3670, + "src": "762:146:23", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 3671, + "src": "659:251:23", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "114:797:23" + }, + "id": 23 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 3682 + ] + }, + "id": 3683, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3672, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "115:24:24" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 3673, + "nodeType": "StructuredDocumentation", + "src": "141:279:24", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 3682, + "linearizedBaseContracts": [ + 3682 + ], + "name": "IERC165", + "nameLocation": "431:7:24", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3674, + "nodeType": "StructuredDocumentation", + "src": "445:340:24", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 3681, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "799:17:24", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3676, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "824:11:24", + "nodeType": "VariableDeclaration", + "scope": 3681, + "src": "817:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3675, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "817:6:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "816:20:24" + }, + "returnParameters": { + "id": 3680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3679, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3681, + "src": "860:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3678, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "860:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "859:6:24" + }, + "scope": 3682, + "src": "790:76:24", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3683, + "src": "421:447:24", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "115:754:24" + }, + "id": 24 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 4736 + ] + }, + "id": 4737, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3684, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:25" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3685, + "nodeType": "StructuredDocumentation", + "src": "129:73:25", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 4736, + "linearizedBaseContracts": [ + 4736 + ], + "name": "Math", + "nameLocation": "211:4:25", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3686, + "nodeType": "StructuredDocumentation", + "src": "222:50:25", + "text": " @dev Muldiv operation overflow." + }, + "errorSelector": "227bc153", + "id": 3688, + "name": "MathOverflowedMulDiv", + "nameLocation": "283:20:25", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3687, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:2:25" + }, + "src": "277:29:25" + }, + { + "canonicalName": "Math.Rounding", + "id": 3693, + "members": [ + { + "id": 3689, + "name": "Floor", + "nameLocation": "336:5:25", + "nodeType": "EnumValue", + "src": "336:5:25" + }, + { + "id": 3690, + "name": "Ceil", + "nameLocation": "379:4:25", + "nodeType": "EnumValue", + "src": "379:4:25" + }, + { + "id": 3691, + "name": "Trunc", + "nameLocation": "421:5:25", + "nodeType": "EnumValue", + "src": "421:5:25" + }, + { + "id": 3692, + "name": "Expand", + "nameLocation": "451:6:25", + "nodeType": "EnumValue", + "src": "451:6:25" + } + ], + "name": "Rounding", + "nameLocation": "317:8:25", + "nodeType": "EnumDefinition", + "src": "312:169:25" + }, + { + "body": { + "id": 3724, + "nodeType": "Block", + "src": "661:140:25", + "statements": [ + { + "id": 3723, + "nodeType": "UncheckedBlock", + "src": "671:124:25", + "statements": [ + { + "assignments": [ + 3706 + ], + "declarations": [ + { + "constant": false, + "id": 3706, + "mutability": "mutable", + "name": "c", + "nameLocation": "703:1:25", + "nodeType": "VariableDeclaration", + "scope": 3723, + "src": "695:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "695:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3710, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3707, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3696, + "src": "707:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 3708, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3698, + "src": "711:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "707:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "695:17:25" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3711, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3706, + "src": "730:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3712, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3696, + "src": "734:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "730:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3718, + "nodeType": "IfStatement", + "src": "726:28:25", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 3714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "745:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 3715, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "752:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 3716, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "744:10:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 3704, + "id": 3717, + "nodeType": "Return", + "src": "737:17:25" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 3719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "776:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 3720, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3706, + "src": "782:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3721, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "775:9:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 3704, + "id": 3722, + "nodeType": "Return", + "src": "768:16:25" + } + ] + } + ] + }, + "documentation": { + "id": 3694, + "nodeType": "StructuredDocumentation", + "src": "487:93:25", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag." + }, + "id": 3725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nameLocation": "594:6:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3696, + "mutability": "mutable", + "name": "a", + "nameLocation": "609:1:25", + "nodeType": "VariableDeclaration", + "scope": 3725, + "src": "601:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3695, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "601:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3698, + "mutability": "mutable", + "name": "b", + "nameLocation": "620:1:25", + "nodeType": "VariableDeclaration", + "scope": 3725, + "src": "612:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "612:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "600:22:25" + }, + "returnParameters": { + "id": 3704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3701, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3725, + "src": "646:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3700, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "646:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3703, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3725, + "src": "652:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "652:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "645:15:25" + }, + "scope": 4736, + "src": "585:216:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3752, + "nodeType": "Block", + "src": "984:113:25", + "statements": [ + { + "id": 3751, + "nodeType": "UncheckedBlock", + "src": "994:97:25", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3737, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "1022:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 3738, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3728, + "src": "1026:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1022:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3744, + "nodeType": "IfStatement", + "src": "1018:28:25", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 3740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1037:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 3741, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1044:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 3742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1036:10:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 3736, + "id": 3743, + "nodeType": "Return", + "src": "1029:17:25" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 3745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1068:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3746, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3728, + "src": "1074:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 3747, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "1078:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1074:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3749, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1067:13:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 3736, + "id": 3750, + "nodeType": "Return", + "src": "1060:20:25" + } + ] + } + ] + }, + "documentation": { + "id": 3726, + "nodeType": "StructuredDocumentation", + "src": "807:96:25", + "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag." + }, + "id": 3753, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nameLocation": "917:6:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3731, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3728, + "mutability": "mutable", + "name": "a", + "nameLocation": "932:1:25", + "nodeType": "VariableDeclaration", + "scope": 3753, + "src": "924:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "924:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3730, + "mutability": "mutable", + "name": "b", + "nameLocation": "943:1:25", + "nodeType": "VariableDeclaration", + "scope": 3753, + "src": "935:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "935:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "923:22:25" + }, + "returnParameters": { + "id": 3736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3733, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3753, + "src": "969:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3732, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "969:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3735, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3753, + "src": "975:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3734, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "975:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "968:15:25" + }, + "scope": 4736, + "src": "908:189:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3794, + "nodeType": "Block", + "src": "1283:417:25", + "statements": [ + { + "id": 3793, + "nodeType": "UncheckedBlock", + "src": "1293:401:25", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3765, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3756, + "src": "1551:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1556:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1551:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3772, + "nodeType": "IfStatement", + "src": "1547:28:25", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 3768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1567:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1573:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 3770, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1566:9:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 3764, + "id": 3771, + "nodeType": "Return", + "src": "1559:16:25" + } + }, + { + "assignments": [ + 3774 + ], + "declarations": [ + { + "constant": false, + "id": 3774, + "mutability": "mutable", + "name": "c", + "nameLocation": "1597:1:25", + "nodeType": "VariableDeclaration", + "scope": 3793, + "src": "1589:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1589:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3778, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3775, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3756, + "src": "1601:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3776, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3758, + "src": "1605:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1601:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1589:17:25" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3779, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3774, + "src": "1624:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3780, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3756, + "src": "1628:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1624:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 3782, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3758, + "src": "1633:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1624:10:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3788, + "nodeType": "IfStatement", + "src": "1620:33:25", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 3784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1644:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 3785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1651:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 3786, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1643:10:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 3764, + "id": 3787, + "nodeType": "Return", + "src": "1636:17:25" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1675:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 3790, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3774, + "src": "1681:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3791, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1674:9:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 3764, + "id": 3792, + "nodeType": "Return", + "src": "1667:16:25" + } + ] + } + ] + }, + "documentation": { + "id": 3754, + "nodeType": "StructuredDocumentation", + "src": "1103:99:25", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag." + }, + "id": 3795, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nameLocation": "1216:6:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3756, + "mutability": "mutable", + "name": "a", + "nameLocation": "1231:1:25", + "nodeType": "VariableDeclaration", + "scope": 3795, + "src": "1223:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3755, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1223:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3758, + "mutability": "mutable", + "name": "b", + "nameLocation": "1242:1:25", + "nodeType": "VariableDeclaration", + "scope": 3795, + "src": "1234:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1222:22:25" + }, + "returnParameters": { + "id": 3764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3761, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3795, + "src": "1268:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3760, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1268:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3763, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3795, + "src": "1274:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3762, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1274:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1267:15:25" + }, + "scope": 4736, + "src": "1207:493:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3822, + "nodeType": "Block", + "src": "1887:114:25", + "statements": [ + { + "id": 3821, + "nodeType": "UncheckedBlock", + "src": "1897:98:25", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3807, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3800, + "src": "1925:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1930:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1925:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3814, + "nodeType": "IfStatement", + "src": "1921:29:25", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 3810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1941:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 3811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1948:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 3812, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1940:10:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 3806, + "id": 3813, + "nodeType": "Return", + "src": "1933:17:25" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 3815, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1972:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3816, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3798, + "src": "1978:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3817, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3800, + "src": "1982:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1978:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3819, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1971:13:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 3806, + "id": 3820, + "nodeType": "Return", + "src": "1964:20:25" + } + ] + } + ] + }, + "documentation": { + "id": 3796, + "nodeType": "StructuredDocumentation", + "src": "1706:100:25", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag." + }, + "id": 3823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nameLocation": "1820:6:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3801, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3798, + "mutability": "mutable", + "name": "a", + "nameLocation": "1835:1:25", + "nodeType": "VariableDeclaration", + "scope": 3823, + "src": "1827:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3797, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1827:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3800, + "mutability": "mutable", + "name": "b", + "nameLocation": "1846:1:25", + "nodeType": "VariableDeclaration", + "scope": 3823, + "src": "1838:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3799, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1838:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1826:22:25" + }, + "returnParameters": { + "id": 3806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3803, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3823, + "src": "1872:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3802, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1872:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3805, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3823, + "src": "1878:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3804, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1878:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1871:15:25" + }, + "scope": 4736, + "src": "1811:190:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3850, + "nodeType": "Block", + "src": "2198:114:25", + "statements": [ + { + "id": 3849, + "nodeType": "UncheckedBlock", + "src": "2208:98:25", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3835, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2236:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2241:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2236:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3842, + "nodeType": "IfStatement", + "src": "2232:29:25", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 3838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2252:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 3839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2259:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 3840, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2251:10:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 3834, + "id": 3841, + "nodeType": "Return", + "src": "2244:17:25" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 3843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2283:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3844, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "2289:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 3845, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2293:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2289:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3847, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2282:13:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 3834, + "id": 3848, + "nodeType": "Return", + "src": "2275:20:25" + } + ] + } + ] + }, + "documentation": { + "id": 3824, + "nodeType": "StructuredDocumentation", + "src": "2007:110:25", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag." + }, + "id": 3851, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "2131:6:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3829, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3826, + "mutability": "mutable", + "name": "a", + "nameLocation": "2146:1:25", + "nodeType": "VariableDeclaration", + "scope": 3851, + "src": "2138:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3828, + "mutability": "mutable", + "name": "b", + "nameLocation": "2157:1:25", + "nodeType": "VariableDeclaration", + "scope": 3851, + "src": "2149:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2149:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2137:22:25" + }, + "returnParameters": { + "id": 3834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3831, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3851, + "src": "2183:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3830, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2183:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3833, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3851, + "src": "2189:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2189:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2182:15:25" + }, + "scope": 4736, + "src": "2122:190:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3868, + "nodeType": "Block", + "src": "2449:37:25", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3861, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3854, + "src": "2466:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 3862, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3856, + "src": "2470:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2466:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3865, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3856, + "src": "2478:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2466:13:25", + "trueExpression": { + "id": 3864, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3854, + "src": "2474:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3860, + "id": 3867, + "nodeType": "Return", + "src": "2459:20:25" + } + ] + }, + "documentation": { + "id": 3852, + "nodeType": "StructuredDocumentation", + "src": "2318:59:25", + "text": " @dev Returns the largest of two numbers." + }, + "id": 3869, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "2391:3:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3854, + "mutability": "mutable", + "name": "a", + "nameLocation": "2403:1:25", + "nodeType": "VariableDeclaration", + "scope": 3869, + "src": "2395:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2395:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3856, + "mutability": "mutable", + "name": "b", + "nameLocation": "2414:1:25", + "nodeType": "VariableDeclaration", + "scope": 3869, + "src": "2406:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3855, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2406:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2394:22:25" + }, + "returnParameters": { + "id": 3860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3859, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3869, + "src": "2440:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2440:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2439:9:25" + }, + "scope": 4736, + "src": "2382:104:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3886, + "nodeType": "Block", + "src": "2624:37:25", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3879, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3872, + "src": "2641:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3880, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "2645:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2641:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3883, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "2653:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2641:13:25", + "trueExpression": { + "id": 3882, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3872, + "src": "2649:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3878, + "id": 3885, + "nodeType": "Return", + "src": "2634:20:25" + } + ] + }, + "documentation": { + "id": 3870, + "nodeType": "StructuredDocumentation", + "src": "2492:60:25", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 3887, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "2566:3:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3872, + "mutability": "mutable", + "name": "a", + "nameLocation": "2578:1:25", + "nodeType": "VariableDeclaration", + "scope": 3887, + "src": "2570:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3871, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2570:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3874, + "mutability": "mutable", + "name": "b", + "nameLocation": "2589:1:25", + "nodeType": "VariableDeclaration", + "scope": 3887, + "src": "2581:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2581:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2569:22:25" + }, + "returnParameters": { + "id": 3878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3877, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3887, + "src": "2615:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2615:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2614:9:25" + }, + "scope": 4736, + "src": "2557:104:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3909, + "nodeType": "Block", + "src": "2845:82:25", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3897, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3890, + "src": "2900:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 3898, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3892, + "src": "2904:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2900:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3900, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2899:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3901, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3890, + "src": "2910:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 3902, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3892, + "src": "2914:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2910:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3904, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2909:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 3905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2919:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2909:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2899:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3896, + "id": 3908, + "nodeType": "Return", + "src": "2892:28:25" + } + ] + }, + "documentation": { + "id": 3888, + "nodeType": "StructuredDocumentation", + "src": "2667:102:25", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 3910, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "2783:7:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3890, + "mutability": "mutable", + "name": "a", + "nameLocation": "2799:1:25", + "nodeType": "VariableDeclaration", + "scope": 3910, + "src": "2791:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3889, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3892, + "mutability": "mutable", + "name": "b", + "nameLocation": "2810:1:25", + "nodeType": "VariableDeclaration", + "scope": 3910, + "src": "2802:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2802:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2790:22:25" + }, + "returnParameters": { + "id": 3896, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3895, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3910, + "src": "2836:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2836:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2835:9:25" + }, + "scope": 4736, + "src": "2774:153:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3943, + "nodeType": "Block", + "src": "3219:260:25", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3920, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3915, + "src": "3233:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3238:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3233:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3928, + "nodeType": "IfStatement", + "src": "3229:127:25", + "trueBody": { + "id": 3927, + "nodeType": "Block", + "src": "3241:115:25", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3923, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3913, + "src": "3340:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3924, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3915, + "src": "3344:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3340:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3919, + "id": 3926, + "nodeType": "Return", + "src": "3333:12:25" + } + ] + } + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3929, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3913, + "src": "3444:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3449:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3444:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3933, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3913, + "src": "3458:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 3934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3462:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3458:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3936, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3457:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3937, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3915, + "src": "3467:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3457:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 3939, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3471:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3457:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "3444:28:25", + "trueExpression": { + "hexValue": "30", + "id": 3932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3453:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3919, + "id": 3942, + "nodeType": "Return", + "src": "3437:35:25" + } + ] + }, + "documentation": { + "id": 3911, + "nodeType": "StructuredDocumentation", + "src": "2933:210:25", + "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero." + }, + "id": 3944, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "3157:7:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3913, + "mutability": "mutable", + "name": "a", + "nameLocation": "3173:1:25", + "nodeType": "VariableDeclaration", + "scope": 3944, + "src": "3165:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3912, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3165:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3915, + "mutability": "mutable", + "name": "b", + "nameLocation": "3184:1:25", + "nodeType": "VariableDeclaration", + "scope": 3944, + "src": "3176:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3176:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3164:22:25" + }, + "returnParameters": { + "id": 3919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3918, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3944, + "src": "3210:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3917, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3210:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3209:9:25" + }, + "scope": 4736, + "src": "3148:331:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4069, + "nodeType": "Block", + "src": "3901:4018:25", + "statements": [ + { + "id": 4068, + "nodeType": "UncheckedBlock", + "src": "3911:4002:25", + "statements": [ + { + "assignments": [ + 3957 + ], + "declarations": [ + { + "constant": false, + "id": 3957, + "mutability": "mutable", + "name": "prod0", + "nameLocation": "4240:5:25", + "nodeType": "VariableDeclaration", + "scope": 4068, + "src": "4232:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3956, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4232:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3961, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3958, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3947, + "src": "4248:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3959, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3949, + "src": "4252:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4248:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4232:21:25" + }, + { + "assignments": [ + 3963 + ], + "declarations": [ + { + "constant": false, + "id": 3963, + "mutability": "mutable", + "name": "prod1", + "nameLocation": "4320:5:25", + "nodeType": "VariableDeclaration", + "scope": 4068, + "src": "4312:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3962, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4312:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3964, + "nodeType": "VariableDeclarationStatement", + "src": "4312:13:25" + }, + { + "AST": { + "nativeSrc": "4392:122:25", + "nodeType": "YulBlock", + "src": "4392:122:25", + "statements": [ + { + "nativeSrc": "4410:30:25", + "nodeType": "YulVariableDeclaration", + "src": "4410:30:25", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "4427:1:25", + "nodeType": "YulIdentifier", + "src": "4427:1:25" + }, + { + "name": "y", + "nativeSrc": "4430:1:25", + "nodeType": "YulIdentifier", + "src": "4430:1:25" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4437:1:25", + "nodeType": "YulLiteral", + "src": "4437:1:25", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4433:3:25", + "nodeType": "YulIdentifier", + "src": "4433:3:25" + }, + "nativeSrc": "4433:6:25", + "nodeType": "YulFunctionCall", + "src": "4433:6:25" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "4420:6:25", + "nodeType": "YulIdentifier", + "src": "4420:6:25" + }, + "nativeSrc": "4420:20:25", + "nodeType": "YulFunctionCall", + "src": "4420:20:25" + }, + "variables": [ + { + "name": "mm", + "nativeSrc": "4414:2:25", + "nodeType": "YulTypedName", + "src": "4414:2:25", + "type": "" + } + ] + }, + { + "nativeSrc": "4457:43:25", + "nodeType": "YulAssignment", + "src": "4457:43:25", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4474:2:25", + "nodeType": "YulIdentifier", + "src": "4474:2:25" + }, + { + "name": "prod0", + "nativeSrc": "4478:5:25", + "nodeType": "YulIdentifier", + "src": "4478:5:25" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4470:3:25", + "nodeType": "YulIdentifier", + "src": "4470:3:25" + }, + "nativeSrc": "4470:14:25", + "nodeType": "YulFunctionCall", + "src": "4470:14:25" + }, + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4489:2:25", + "nodeType": "YulIdentifier", + "src": "4489:2:25" + }, + { + "name": "prod0", + "nativeSrc": "4493:5:25", + "nodeType": "YulIdentifier", + "src": "4493:5:25" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4486:2:25", + "nodeType": "YulIdentifier", + "src": "4486:2:25" + }, + "nativeSrc": "4486:13:25", + "nodeType": "YulFunctionCall", + "src": "4486:13:25" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4466:3:25", + "nodeType": "YulIdentifier", + "src": "4466:3:25" + }, + "nativeSrc": "4466:34:25", + "nodeType": "YulFunctionCall", + "src": "4466:34:25" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "4457:5:25", + "nodeType": "YulIdentifier", + "src": "4457:5:25" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3957, + "isOffset": false, + "isSlot": false, + "src": "4478:5:25", + "valueSize": 1 + }, + { + "declaration": 3957, + "isOffset": false, + "isSlot": false, + "src": "4493:5:25", + "valueSize": 1 + }, + { + "declaration": 3963, + "isOffset": false, + "isSlot": false, + "src": "4457:5:25", + "valueSize": 1 + }, + { + "declaration": 3947, + "isOffset": false, + "isSlot": false, + "src": "4427:1:25", + "valueSize": 1 + }, + { + "declaration": 3949, + "isOffset": false, + "isSlot": false, + "src": "4430:1:25", + "valueSize": 1 + } + ], + "id": 3965, + "nodeType": "InlineAssembly", + "src": "4383:131:25" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3966, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3963, + "src": "4595:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4604:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4595:10:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3974, + "nodeType": "IfStatement", + "src": "4591:368:25", + "trueBody": { + "id": 3973, + "nodeType": "Block", + "src": "4607:352:25", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3969, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3957, + "src": "4925:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3970, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "4933:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4925:19:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3955, + "id": 3972, + "nodeType": "Return", + "src": "4918:26:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3975, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "5065:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 3976, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3963, + "src": "5080:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5065:20:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3982, + "nodeType": "IfStatement", + "src": "5061:88:25", + "trueBody": { + "id": 3981, + "nodeType": "Block", + "src": "5087:62:25", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3978, + "name": "MathOverflowedMulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3688, + "src": "5112:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 3979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5112:22:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3980, + "nodeType": "RevertStatement", + "src": "5105:29:25" + } + ] + } + }, + { + "assignments": [ + 3984 + ], + "declarations": [ + { + "constant": false, + "id": 3984, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "5412:9:25", + "nodeType": "VariableDeclaration", + "scope": 4068, + "src": "5404:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3983, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5404:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3985, + "nodeType": "VariableDeclarationStatement", + "src": "5404:17:25" + }, + { + "AST": { + "nativeSrc": "5444:291:25", + "nodeType": "YulBlock", + "src": "5444:291:25", + "statements": [ + { + "nativeSrc": "5513:38:25", + "nodeType": "YulAssignment", + "src": "5513:38:25", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "5533:1:25", + "nodeType": "YulIdentifier", + "src": "5533:1:25" + }, + { + "name": "y", + "nativeSrc": "5536:1:25", + "nodeType": "YulIdentifier", + "src": "5536:1:25" + }, + { + "name": "denominator", + "nativeSrc": "5539:11:25", + "nodeType": "YulIdentifier", + "src": "5539:11:25" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "5526:6:25", + "nodeType": "YulIdentifier", + "src": "5526:6:25" + }, + "nativeSrc": "5526:25:25", + "nodeType": "YulFunctionCall", + "src": "5526:25:25" + }, + "variableNames": [ + { + "name": "remainder", + "nativeSrc": "5513:9:25", + "nodeType": "YulIdentifier", + "src": "5513:9:25" + } + ] + }, + { + "nativeSrc": "5633:41:25", + "nodeType": "YulAssignment", + "src": "5633:41:25", + "value": { + "arguments": [ + { + "name": "prod1", + "nativeSrc": "5646:5:25", + "nodeType": "YulIdentifier", + "src": "5646:5:25" + }, + { + "arguments": [ + { + "name": "remainder", + "nativeSrc": "5656:9:25", + "nodeType": "YulIdentifier", + "src": "5656:9:25" + }, + { + "name": "prod0", + "nativeSrc": "5667:5:25", + "nodeType": "YulIdentifier", + "src": "5667:5:25" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5653:2:25", + "nodeType": "YulIdentifier", + "src": "5653:2:25" + }, + "nativeSrc": "5653:20:25", + "nodeType": "YulFunctionCall", + "src": "5653:20:25" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5642:3:25", + "nodeType": "YulIdentifier", + "src": "5642:3:25" + }, + "nativeSrc": "5642:32:25", + "nodeType": "YulFunctionCall", + "src": "5642:32:25" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "5633:5:25", + "nodeType": "YulIdentifier", + "src": "5633:5:25" + } + ] + }, + { + "nativeSrc": "5691:30:25", + "nodeType": "YulAssignment", + "src": "5691:30:25", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "5704:5:25", + "nodeType": "YulIdentifier", + "src": "5704:5:25" + }, + { + "name": "remainder", + "nativeSrc": "5711:9:25", + "nodeType": "YulIdentifier", + "src": "5711:9:25" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5700:3:25", + "nodeType": "YulIdentifier", + "src": "5700:3:25" + }, + "nativeSrc": "5700:21:25", + "nodeType": "YulFunctionCall", + "src": "5700:21:25" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "5691:5:25", + "nodeType": "YulIdentifier", + "src": "5691:5:25" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3951, + "isOffset": false, + "isSlot": false, + "src": "5539:11:25", + "valueSize": 1 + }, + { + "declaration": 3957, + "isOffset": false, + "isSlot": false, + "src": "5667:5:25", + "valueSize": 1 + }, + { + "declaration": 3957, + "isOffset": false, + "isSlot": false, + "src": "5691:5:25", + "valueSize": 1 + }, + { + "declaration": 3957, + "isOffset": false, + "isSlot": false, + "src": "5704:5:25", + "valueSize": 1 + }, + { + "declaration": 3963, + "isOffset": false, + "isSlot": false, + "src": "5633:5:25", + "valueSize": 1 + }, + { + "declaration": 3963, + "isOffset": false, + "isSlot": false, + "src": "5646:5:25", + "valueSize": 1 + }, + { + "declaration": 3984, + "isOffset": false, + "isSlot": false, + "src": "5513:9:25", + "valueSize": 1 + }, + { + "declaration": 3984, + "isOffset": false, + "isSlot": false, + "src": "5656:9:25", + "valueSize": 1 + }, + { + "declaration": 3984, + "isOffset": false, + "isSlot": false, + "src": "5711:9:25", + "valueSize": 1 + }, + { + "declaration": 3947, + "isOffset": false, + "isSlot": false, + "src": "5533:1:25", + "valueSize": 1 + }, + { + "declaration": 3949, + "isOffset": false, + "isSlot": false, + "src": "5536:1:25", + "valueSize": 1 + } + ], + "id": 3986, + "nodeType": "InlineAssembly", + "src": "5435:300:25" + }, + { + "assignments": [ + 3988 + ], + "declarations": [ + { + "constant": false, + "id": 3988, + "mutability": "mutable", + "name": "twos", + "nameLocation": "5947:4:25", + "nodeType": "VariableDeclaration", + "scope": 4068, + "src": "5939:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5939:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3995, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3989, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "5954:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "30", + "id": 3990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5969:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 3991, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "5973:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5969:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3993, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5968:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5954:31:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5939:46:25" + }, + { + "AST": { + "nativeSrc": "6008:362:25", + "nodeType": "YulBlock", + "src": "6008:362:25", + "statements": [ + { + "nativeSrc": "6073:37:25", + "nodeType": "YulAssignment", + "src": "6073:37:25", + "value": { + "arguments": [ + { + "name": "denominator", + "nativeSrc": "6092:11:25", + "nodeType": "YulIdentifier", + "src": "6092:11:25" + }, + { + "name": "twos", + "nativeSrc": "6105:4:25", + "nodeType": "YulIdentifier", + "src": "6105:4:25" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6088:3:25", + "nodeType": "YulIdentifier", + "src": "6088:3:25" + }, + "nativeSrc": "6088:22:25", + "nodeType": "YulFunctionCall", + "src": "6088:22:25" + }, + "variableNames": [ + { + "name": "denominator", + "nativeSrc": "6073:11:25", + "nodeType": "YulIdentifier", + "src": "6073:11:25" + } + ] + }, + { + "nativeSrc": "6177:25:25", + "nodeType": "YulAssignment", + "src": "6177:25:25", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "6190:5:25", + "nodeType": "YulIdentifier", + "src": "6190:5:25" + }, + { + "name": "twos", + "nativeSrc": "6197:4:25", + "nodeType": "YulIdentifier", + "src": "6197:4:25" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6186:3:25", + "nodeType": "YulIdentifier", + "src": "6186:3:25" + }, + "nativeSrc": "6186:16:25", + "nodeType": "YulFunctionCall", + "src": "6186:16:25" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "6177:5:25", + "nodeType": "YulIdentifier", + "src": "6177:5:25" + } + ] + }, + { + "nativeSrc": "6317:39:25", + "nodeType": "YulAssignment", + "src": "6317:39:25", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6337:1:25", + "nodeType": "YulLiteral", + "src": "6337:1:25", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nativeSrc": "6340:4:25", + "nodeType": "YulIdentifier", + "src": "6340:4:25" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6333:3:25", + "nodeType": "YulIdentifier", + "src": "6333:3:25" + }, + "nativeSrc": "6333:12:25", + "nodeType": "YulFunctionCall", + "src": "6333:12:25" + }, + { + "name": "twos", + "nativeSrc": "6347:4:25", + "nodeType": "YulIdentifier", + "src": "6347:4:25" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6329:3:25", + "nodeType": "YulIdentifier", + "src": "6329:3:25" + }, + "nativeSrc": "6329:23:25", + "nodeType": "YulFunctionCall", + "src": "6329:23:25" + }, + { + "kind": "number", + "nativeSrc": "6354:1:25", + "nodeType": "YulLiteral", + "src": "6354:1:25", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6325:3:25", + "nodeType": "YulIdentifier", + "src": "6325:3:25" + }, + "nativeSrc": "6325:31:25", + "nodeType": "YulFunctionCall", + "src": "6325:31:25" + }, + "variableNames": [ + { + "name": "twos", + "nativeSrc": "6317:4:25", + "nodeType": "YulIdentifier", + "src": "6317:4:25" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3951, + "isOffset": false, + "isSlot": false, + "src": "6073:11:25", + "valueSize": 1 + }, + { + "declaration": 3951, + "isOffset": false, + "isSlot": false, + "src": "6092:11:25", + "valueSize": 1 + }, + { + "declaration": 3957, + "isOffset": false, + "isSlot": false, + "src": "6177:5:25", + "valueSize": 1 + }, + { + "declaration": 3957, + "isOffset": false, + "isSlot": false, + "src": "6190:5:25", + "valueSize": 1 + }, + { + "declaration": 3988, + "isOffset": false, + "isSlot": false, + "src": "6105:4:25", + "valueSize": 1 + }, + { + "declaration": 3988, + "isOffset": false, + "isSlot": false, + "src": "6197:4:25", + "valueSize": 1 + }, + { + "declaration": 3988, + "isOffset": false, + "isSlot": false, + "src": "6317:4:25", + "valueSize": 1 + }, + { + "declaration": 3988, + "isOffset": false, + "isSlot": false, + "src": "6340:4:25", + "valueSize": 1 + }, + { + "declaration": 3988, + "isOffset": false, + "isSlot": false, + "src": "6347:4:25", + "valueSize": 1 + } + ], + "id": 3996, + "nodeType": "InlineAssembly", + "src": "5999:371:25" + }, + { + "expression": { + "id": 4001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3997, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3957, + "src": "6436:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3998, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3963, + "src": "6445:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3999, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "6453:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6445:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6436:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4002, + "nodeType": "ExpressionStatement", + "src": "6436:21:25" + }, + { + "assignments": [ + 4004 + ], + "declarations": [ + { + "constant": false, + "id": 4004, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "6783:7:25", + "nodeType": "VariableDeclaration", + "scope": 4068, + "src": "6775:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4003, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6775:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4011, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 4005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6794:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4006, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "6798:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6794:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4008, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6793:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 4009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6813:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "6793:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6775:39:25" + }, + { + "expression": { + "id": 4018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4012, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7031:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 4013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7042:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "7046:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4015, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7060:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7046:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7042:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7031:36:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4019, + "nodeType": "ExpressionStatement", + "src": "7031:36:25" + }, + { + "expression": { + "id": 4026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4020, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7100:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 4021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7111:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4022, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "7115:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4023, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7129:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7115:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7111:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7100:36:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4027, + "nodeType": "ExpressionStatement", + "src": "7100:36:25" + }, + { + "expression": { + "id": 4034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4028, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7170:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 4029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7181:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4030, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "7185:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4031, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7199:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7185:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7181:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7170:36:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4035, + "nodeType": "ExpressionStatement", + "src": "7170:36:25" + }, + { + "expression": { + "id": 4042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4036, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7240:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 4037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7251:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4038, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "7255:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4039, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7269:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7255:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7251:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7240:36:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4043, + "nodeType": "ExpressionStatement", + "src": "7240:36:25" + }, + { + "expression": { + "id": 4050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4044, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7310:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 4045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7321:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4046, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "7325:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4047, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7339:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7325:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7321:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7310:36:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4051, + "nodeType": "ExpressionStatement", + "src": "7310:36:25" + }, + { + "expression": { + "id": 4058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4052, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7381:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 4053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7392:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4054, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "7396:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4055, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7410:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7396:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7392:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7381:36:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4059, + "nodeType": "ExpressionStatement", + "src": "7381:36:25" + }, + { + "expression": { + "id": 4064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4060, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3954, + "src": "7851:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4061, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3957, + "src": "7860:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4062, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "7868:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7860:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7851:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4065, + "nodeType": "ExpressionStatement", + "src": "7851:24:25" + }, + { + "expression": { + "id": 4066, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3954, + "src": "7896:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3955, + "id": 4067, + "nodeType": "Return", + "src": "7889:13:25" + } + ] + } + ] + }, + "documentation": { + "id": 3945, + "nodeType": "StructuredDocumentation", + "src": "3485:313:25", + "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license." + }, + "id": 4070, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "3812:6:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3947, + "mutability": "mutable", + "name": "x", + "nameLocation": "3827:1:25", + "nodeType": "VariableDeclaration", + "scope": 4070, + "src": "3819:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3819:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3949, + "mutability": "mutable", + "name": "y", + "nameLocation": "3838:1:25", + "nodeType": "VariableDeclaration", + "scope": 4070, + "src": "3830:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3830:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3951, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "3849:11:25", + "nodeType": "VariableDeclaration", + "scope": 4070, + "src": "3841:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3841:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3818:43:25" + }, + "returnParameters": { + "id": 3955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3954, + "mutability": "mutable", + "name": "result", + "nameLocation": "3893:6:25", + "nodeType": "VariableDeclaration", + "scope": 4070, + "src": "3885:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3885:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3884:16:25" + }, + "scope": 4736, + "src": "3803:4116:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4112, + "nodeType": "Block", + "src": "8161:192:25", + "statements": [ + { + "assignments": [ + 4086 + ], + "declarations": [ + { + "constant": false, + "id": 4086, + "mutability": "mutable", + "name": "result", + "nameLocation": "8179:6:25", + "nodeType": "VariableDeclaration", + "scope": 4112, + "src": "8171:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4085, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4092, + "initialValue": { + "arguments": [ + { + "id": 4088, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4073, + "src": "8195:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4089, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4075, + "src": "8198:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4090, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4077, + "src": "8201:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4087, + "name": "mulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4070, + 4113 + ], + "referencedDeclaration": 4070, + "src": "8188:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 4091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8188:25:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8171:42:25" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4094, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4080, + "src": "8244:8:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + ], + "id": 4093, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4735, + "src": "8227:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3693_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 4095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8227:26:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4097, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4073, + "src": "8264:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4098, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4075, + "src": "8267:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4099, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4077, + "src": "8270:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4096, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "8257:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 4100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8257:25:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8285:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8257:29:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8227:59:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4109, + "nodeType": "IfStatement", + "src": "8223:101:25", + "trueBody": { + "id": 4108, + "nodeType": "Block", + "src": "8288:36:25", + "statements": [ + { + "expression": { + "id": 4106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4104, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4086, + "src": "8302:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 4105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8312:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8302:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4107, + "nodeType": "ExpressionStatement", + "src": "8302:11:25" + } + ] + } + }, + { + "expression": { + "id": 4110, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4086, + "src": "8340:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4084, + "id": 4111, + "nodeType": "Return", + "src": "8333:13:25" + } + ] + }, + "documentation": { + "id": 4071, + "nodeType": "StructuredDocumentation", + "src": "7925:121:25", + "text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction." + }, + "id": 4113, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "8060:6:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4073, + "mutability": "mutable", + "name": "x", + "nameLocation": "8075:1:25", + "nodeType": "VariableDeclaration", + "scope": 4113, + "src": "8067:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8067:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4075, + "mutability": "mutable", + "name": "y", + "nameLocation": "8086:1:25", + "nodeType": "VariableDeclaration", + "scope": 4113, + "src": "8078:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4074, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8078:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4077, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "8097:11:25", + "nodeType": "VariableDeclaration", + "scope": 4113, + "src": "8089:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4076, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8089:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4080, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "8119:8:25", + "nodeType": "VariableDeclaration", + "scope": 4113, + "src": "8110:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 4079, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4078, + "name": "Rounding", + "nameLocations": [ + "8110:8:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3693, + "src": "8110:8:25" + }, + "referencedDeclaration": 3693, + "src": "8110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "8066:62:25" + }, + "returnParameters": { + "id": 4084, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4083, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4113, + "src": "8152:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8152:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8151:9:25" + }, + "scope": 4736, + "src": "8051:302:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4224, + "nodeType": "Block", + "src": "8644:1585:25", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4121, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4116, + "src": "8658:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 4122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8663:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8658:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4127, + "nodeType": "IfStatement", + "src": "8654:45:25", + "trueBody": { + "id": 4126, + "nodeType": "Block", + "src": "8666:33:25", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 4124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8687:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 4120, + "id": 4125, + "nodeType": "Return", + "src": "8680:8:25" + } + ] + } + }, + { + "assignments": [ + 4129 + ], + "declarations": [ + { + "constant": false, + "id": 4129, + "mutability": "mutable", + "name": "result", + "nameLocation": "9386:6:25", + "nodeType": "VariableDeclaration", + "scope": 4224, + "src": "9378:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9378:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4138, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 4130, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9395:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4132, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4116, + "src": "9406:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4131, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4392, + 4427 + ], + "referencedDeclaration": 4392, + "src": "9401:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 4133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9401:7:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 4134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9412:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9401:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4136, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9400:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9395:19:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9378:36:25" + }, + { + "id": 4223, + "nodeType": "UncheckedBlock", + "src": "9815:408:25", + "statements": [ + { + "expression": { + "id": 4148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4139, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "9839:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4140, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "9849:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4141, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4116, + "src": "9858:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 4142, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "9862:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9858:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9849:19:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4145, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9848:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 4146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9873:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9848:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9839:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4149, + "nodeType": "ExpressionStatement", + "src": "9839:35:25" + }, + { + "expression": { + "id": 4159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4150, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "9888:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4151, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "9898:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4152, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4116, + "src": "9907:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 4153, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "9911:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9907:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9898:19:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4156, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9897:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 4157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9922:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9897:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9888:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4160, + "nodeType": "ExpressionStatement", + "src": "9888:35:25" + }, + { + "expression": { + "id": 4170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4161, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "9937:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4162, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "9947:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4163, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4116, + "src": "9956:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 4164, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "9960:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9956:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9947:19:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4167, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9946:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 4168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9971:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9946:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9937:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4171, + "nodeType": "ExpressionStatement", + "src": "9937:35:25" + }, + { + "expression": { + "id": 4181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4172, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "9986:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4173, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "9996:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4174, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4116, + "src": "10005:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 4175, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "10009:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10005:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9996:19:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4178, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9995:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 4179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10020:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9995:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9986:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4182, + "nodeType": "ExpressionStatement", + "src": "9986:35:25" + }, + { + "expression": { + "id": 4192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4183, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "10035:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4184, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "10045:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4185, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4116, + "src": "10054:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 4186, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "10058:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10054:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10045:19:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4189, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10044:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 4190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10069:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10044:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10035:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4193, + "nodeType": "ExpressionStatement", + "src": "10035:35:25" + }, + { + "expression": { + "id": 4203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4194, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "10084:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4195, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "10094:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4196, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4116, + "src": "10103:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 4197, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "10107:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10103:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10094:19:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4200, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10093:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 4201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10118:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10093:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10084:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4204, + "nodeType": "ExpressionStatement", + "src": "10084:35:25" + }, + { + "expression": { + "id": 4214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4205, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "10133:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4206, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "10143:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4207, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4116, + "src": "10152:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 4208, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "10156:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10152:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10143:19:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4211, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10142:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 4212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10167:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10142:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10133:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4215, + "nodeType": "ExpressionStatement", + "src": "10133:35:25" + }, + { + "expression": { + "arguments": [ + { + "id": 4217, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "10193:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4218, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4116, + "src": "10201:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 4219, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4129, + "src": "10205:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10201:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4216, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "10189:3:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10189:23:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4120, + "id": 4222, + "nodeType": "Return", + "src": "10182:30:25" + } + ] + } + ] + }, + "documentation": { + "id": 4114, + "nodeType": "StructuredDocumentation", + "src": "8359:223:25", + "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)." + }, + "id": 4225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "8596:4:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4116, + "mutability": "mutable", + "name": "a", + "nameLocation": "8609:1:25", + "nodeType": "VariableDeclaration", + "scope": 4225, + "src": "8601:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8601:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8600:11:25" + }, + "returnParameters": { + "id": 4120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4119, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4225, + "src": "8635:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4118, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8635:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8634:9:25" + }, + "scope": 4736, + "src": "8587:1642:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4259, + "nodeType": "Block", + "src": "10405:164:25", + "statements": [ + { + "id": 4258, + "nodeType": "UncheckedBlock", + "src": "10415:148:25", + "statements": [ + { + "assignments": [ + 4237 + ], + "declarations": [ + { + "constant": false, + "id": 4237, + "mutability": "mutable", + "name": "result", + "nameLocation": "10447:6:25", + "nodeType": "VariableDeclaration", + "scope": 4258, + "src": "10439:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10439:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4241, + "initialValue": { + "arguments": [ + { + "id": 4239, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4228, + "src": "10461:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4238, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4225, + 4260 + ], + "referencedDeclaration": 4225, + "src": "10456:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 4240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10456:7:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10439:24:25" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4242, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4237, + "src": "10484:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4244, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4231, + "src": "10511:8:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + ], + "id": 4243, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4735, + "src": "10494:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3693_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 4245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10494:26:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4246, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4237, + "src": "10524:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4247, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4237, + "src": "10533:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10524:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 4249, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4228, + "src": "10542:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10524:19:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10494:49:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 4253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10550:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 4254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10494:57:25", + "trueExpression": { + "hexValue": "31", + "id": 4252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10546:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 4255, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10493:59:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "10484:68:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4235, + "id": 4257, + "nodeType": "Return", + "src": "10477:75:25" + } + ] + } + ] + }, + "documentation": { + "id": 4226, + "nodeType": "StructuredDocumentation", + "src": "10235:89:25", + "text": " @notice Calculates sqrt(a), following the selected rounding direction." + }, + "id": 4260, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "10338:4:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4232, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4228, + "mutability": "mutable", + "name": "a", + "nameLocation": "10351:1:25", + "nodeType": "VariableDeclaration", + "scope": 4260, + "src": "10343:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10343:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4231, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "10363:8:25", + "nodeType": "VariableDeclaration", + "scope": 4260, + "src": "10354:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 4230, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4229, + "name": "Rounding", + "nameLocations": [ + "10354:8:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3693, + "src": "10354:8:25" + }, + "referencedDeclaration": 3693, + "src": "10354:8:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "10342:30:25" + }, + "returnParameters": { + "id": 4235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4234, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4260, + "src": "10396:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10396:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10395:9:25" + }, + "scope": 4736, + "src": "10329:240:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4391, + "nodeType": "Block", + "src": "10760:922:25", + "statements": [ + { + "assignments": [ + 4269 + ], + "declarations": [ + { + "constant": false, + "id": 4269, + "mutability": "mutable", + "name": "result", + "nameLocation": "10778:6:25", + "nodeType": "VariableDeclaration", + "scope": 4391, + "src": "10770:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10770:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4271, + "initialValue": { + "hexValue": "30", + "id": 4270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10787:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "10770:18:25" + }, + { + "id": 4388, + "nodeType": "UncheckedBlock", + "src": "10798:855:25", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4272, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "10826:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 4273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10835:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10826:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10841:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10826:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4286, + "nodeType": "IfStatement", + "src": "10822:99:25", + "trueBody": { + "id": 4285, + "nodeType": "Block", + "src": "10844:77:25", + "statements": [ + { + "expression": { + "id": 4279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4277, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "10862:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 4278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10872:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10862:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4280, + "nodeType": "ExpressionStatement", + "src": "10862:13:25" + }, + { + "expression": { + "id": 4283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4281, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4269, + "src": "10893:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "313238", + "id": 4282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10903:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10893:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4284, + "nodeType": "ExpressionStatement", + "src": "10893:13:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4287, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "10938:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 4288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10947:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10938:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10952:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10938:15:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4301, + "nodeType": "IfStatement", + "src": "10934:96:25", + "trueBody": { + "id": 4300, + "nodeType": "Block", + "src": "10955:75:25", + "statements": [ + { + "expression": { + "id": 4294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4292, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "10973:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 4293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10983:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10973:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4295, + "nodeType": "ExpressionStatement", + "src": "10973:12:25" + }, + { + "expression": { + "id": 4298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4296, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4269, + "src": "11003:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 4297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11013:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "11003:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4299, + "nodeType": "ExpressionStatement", + "src": "11003:12:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4302, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "11047:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 4303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11056:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11047:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11061:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11047:15:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4316, + "nodeType": "IfStatement", + "src": "11043:96:25", + "trueBody": { + "id": 4315, + "nodeType": "Block", + "src": "11064:75:25", + "statements": [ + { + "expression": { + "id": 4309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4307, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "11082:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 4308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11092:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11082:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4310, + "nodeType": "ExpressionStatement", + "src": "11082:12:25" + }, + { + "expression": { + "id": 4313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4311, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4269, + "src": "11112:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 4312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11122:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11112:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4314, + "nodeType": "ExpressionStatement", + "src": "11112:12:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4317, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "11156:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 4318, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11165:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11156:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11170:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11156:15:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4331, + "nodeType": "IfStatement", + "src": "11152:96:25", + "trueBody": { + "id": 4330, + "nodeType": "Block", + "src": "11173:75:25", + "statements": [ + { + "expression": { + "id": 4324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4322, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "11191:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 4323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11201:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11191:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4325, + "nodeType": "ExpressionStatement", + "src": "11191:12:25" + }, + { + "expression": { + "id": 4328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4326, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4269, + "src": "11221:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 4327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11231:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11221:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4329, + "nodeType": "ExpressionStatement", + "src": "11221:12:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4332, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "11265:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 4333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11274:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11265:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11278:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11265:14:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4346, + "nodeType": "IfStatement", + "src": "11261:93:25", + "trueBody": { + "id": 4345, + "nodeType": "Block", + "src": "11281:73:25", + "statements": [ + { + "expression": { + "id": 4339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "11299:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "38", + "id": 4338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11309:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11299:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4340, + "nodeType": "ExpressionStatement", + "src": "11299:11:25" + }, + { + "expression": { + "id": 4343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4341, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4269, + "src": "11328:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 4342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11338:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11328:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4344, + "nodeType": "ExpressionStatement", + "src": "11328:11:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4347, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "11371:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "34", + "id": 4348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11380:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11371:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11384:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11371:14:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4361, + "nodeType": "IfStatement", + "src": "11367:93:25", + "trueBody": { + "id": 4360, + "nodeType": "Block", + "src": "11387:73:25", + "statements": [ + { + "expression": { + "id": 4354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4352, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "11405:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 4353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11415:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11405:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4355, + "nodeType": "ExpressionStatement", + "src": "11405:11:25" + }, + { + "expression": { + "id": 4358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4356, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4269, + "src": "11434:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 4357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11444:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11434:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4359, + "nodeType": "ExpressionStatement", + "src": "11434:11:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4362, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "11477:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "32", + "id": 4363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11486:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11477:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11477:14:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4376, + "nodeType": "IfStatement", + "src": "11473:93:25", + "trueBody": { + "id": 4375, + "nodeType": "Block", + "src": "11493:73:25", + "statements": [ + { + "expression": { + "id": 4369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4367, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "11511:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "32", + "id": 4368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11521:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11511:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4370, + "nodeType": "ExpressionStatement", + "src": "11511:11:25" + }, + { + "expression": { + "id": 4373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4371, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4269, + "src": "11540:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 4372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11550:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11540:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4374, + "nodeType": "ExpressionStatement", + "src": "11540:11:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4377, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "11583:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 4378, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11592:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11583:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11596:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11583:14:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4387, + "nodeType": "IfStatement", + "src": "11579:64:25", + "trueBody": { + "id": 4386, + "nodeType": "Block", + "src": "11599:44:25", + "statements": [ + { + "expression": { + "id": 4384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4382, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4269, + "src": "11617:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 4383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11627:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11617:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4385, + "nodeType": "ExpressionStatement", + "src": "11617:11:25" + } + ] + } + } + ] + }, + { + "expression": { + "id": 4389, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4269, + "src": "11669:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4267, + "id": 4390, + "nodeType": "Return", + "src": "11662:13:25" + } + ] + }, + "documentation": { + "id": 4261, + "nodeType": "StructuredDocumentation", + "src": "10575:119:25", + "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 4392, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "10708:4:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4263, + "mutability": "mutable", + "name": "value", + "nameLocation": "10721:5:25", + "nodeType": "VariableDeclaration", + "scope": 4392, + "src": "10713:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4262, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10713:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10712:15:25" + }, + "returnParameters": { + "id": 4267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4266, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4392, + "src": "10751:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10751:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10750:9:25" + }, + "scope": 4736, + "src": "10699:983:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4426, + "nodeType": "Block", + "src": "11915:168:25", + "statements": [ + { + "id": 4425, + "nodeType": "UncheckedBlock", + "src": "11925:152:25", + "statements": [ + { + "assignments": [ + 4404 + ], + "declarations": [ + { + "constant": false, + "id": 4404, + "mutability": "mutable", + "name": "result", + "nameLocation": "11957:6:25", + "nodeType": "VariableDeclaration", + "scope": 4425, + "src": "11949:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11949:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4408, + "initialValue": { + "arguments": [ + { + "id": 4406, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4395, + "src": "11971:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4405, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4392, + 4427 + ], + "referencedDeclaration": 4392, + "src": "11966:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 4407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11966:11:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11949:28:25" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4409, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4404, + "src": "11998:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4411, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4398, + "src": "12025:8:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + ], + "id": 4410, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4735, + "src": "12008:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3693_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 4412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12008:26:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 4413, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12038:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 4414, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4404, + "src": "12043:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12038:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 4416, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4395, + "src": "12052:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12038:19:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12008:49:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 4420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12064:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 4421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12008:57:25", + "trueExpression": { + "hexValue": "31", + "id": 4419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12060:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 4422, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12007:59:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11998:68:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4402, + "id": 4424, + "nodeType": "Return", + "src": "11991:75:25" + } + ] + } + ] + }, + "documentation": { + "id": 4393, + "nodeType": "StructuredDocumentation", + "src": "11688:142:25", + "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 4427, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "11844:4:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4395, + "mutability": "mutable", + "name": "value", + "nameLocation": "11857:5:25", + "nodeType": "VariableDeclaration", + "scope": 4427, + "src": "11849:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11849:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4398, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "11873:8:25", + "nodeType": "VariableDeclaration", + "scope": 4427, + "src": "11864:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 4397, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4396, + "name": "Rounding", + "nameLocations": [ + "11864:8:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3693, + "src": "11864:8:25" + }, + "referencedDeclaration": 3693, + "src": "11864:8:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "11848:34:25" + }, + "returnParameters": { + "id": 4402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4401, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4427, + "src": "11906:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4400, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11906:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11905:9:25" + }, + "scope": 4736, + "src": "11835:248:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4555, + "nodeType": "Block", + "src": "12276:854:25", + "statements": [ + { + "assignments": [ + 4436 + ], + "declarations": [ + { + "constant": false, + "id": 4436, + "mutability": "mutable", + "name": "result", + "nameLocation": "12294:6:25", + "nodeType": "VariableDeclaration", + "scope": 4555, + "src": "12286:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12286:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4438, + "initialValue": { + "hexValue": "30", + "id": 4437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12303:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12286:18:25" + }, + { + "id": 4552, + "nodeType": "UncheckedBlock", + "src": "12314:787:25", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4439, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "12342:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 4442, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12351:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 4441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12357:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12351:8:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "12342:17:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4455, + "nodeType": "IfStatement", + "src": "12338:103:25", + "trueBody": { + "id": 4454, + "nodeType": "Block", + "src": "12361:80:25", + "statements": [ + { + "expression": { + "id": 4448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4444, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "12379:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 4447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12388:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 4446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12394:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12388:8:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "12379:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4449, + "nodeType": "ExpressionStatement", + "src": "12379:17:25" + }, + { + "expression": { + "id": 4452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4450, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4436, + "src": "12414:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 4451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12424:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12414:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4453, + "nodeType": "ExpressionStatement", + "src": "12414:12:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4456, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "12458:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 4459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12467:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 4458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12473:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12467:8:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "12458:17:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4472, + "nodeType": "IfStatement", + "src": "12454:103:25", + "trueBody": { + "id": 4471, + "nodeType": "Block", + "src": "12477:80:25", + "statements": [ + { + "expression": { + "id": 4465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4461, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "12495:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 4464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12504:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 4463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12510:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12504:8:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "12495:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4466, + "nodeType": "ExpressionStatement", + "src": "12495:17:25" + }, + { + "expression": { + "id": 4469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4467, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4436, + "src": "12530:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 4468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12540:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12530:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4470, + "nodeType": "ExpressionStatement", + "src": "12530:12:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4473, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "12574:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 4476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12583:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 4475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12589:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12583:8:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "12574:17:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4489, + "nodeType": "IfStatement", + "src": "12570:103:25", + "trueBody": { + "id": 4488, + "nodeType": "Block", + "src": "12593:80:25", + "statements": [ + { + "expression": { + "id": 4482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4478, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "12611:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 4481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12620:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 4480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12626:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12620:8:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "12611:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4483, + "nodeType": "ExpressionStatement", + "src": "12611:17:25" + }, + { + "expression": { + "id": 4486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4484, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4436, + "src": "12646:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 4485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12656:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12646:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4487, + "nodeType": "ExpressionStatement", + "src": "12646:12:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "12690:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 4493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12699:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 4492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12705:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12699:7:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "12690:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4506, + "nodeType": "IfStatement", + "src": "12686:100:25", + "trueBody": { + "id": 4505, + "nodeType": "Block", + "src": "12708:78:25", + "statements": [ + { + "expression": { + "id": 4499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "12726:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 4498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12735:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 4497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12741:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12735:7:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "12726:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4500, + "nodeType": "ExpressionStatement", + "src": "12726:16:25" + }, + { + "expression": { + "id": 4503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4501, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4436, + "src": "12760:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 4502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12770:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12760:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4504, + "nodeType": "ExpressionStatement", + "src": "12760:11:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4507, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "12803:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 4510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12812:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12818:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12812:7:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "12803:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4523, + "nodeType": "IfStatement", + "src": "12799:100:25", + "trueBody": { + "id": 4522, + "nodeType": "Block", + "src": "12821:78:25", + "statements": [ + { + "expression": { + "id": 4516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4512, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "12839:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 4515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12848:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 4514, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12854:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12848:7:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "12839:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4517, + "nodeType": "ExpressionStatement", + "src": "12839:16:25" + }, + { + "expression": { + "id": 4520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4518, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4436, + "src": "12873:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 4519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12883:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12873:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4521, + "nodeType": "ExpressionStatement", + "src": "12873:11:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4524, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "12916:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 4527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12925:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 4526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12931:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12925:7:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "12916:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4540, + "nodeType": "IfStatement", + "src": "12912:100:25", + "trueBody": { + "id": 4539, + "nodeType": "Block", + "src": "12934:78:25", + "statements": [ + { + "expression": { + "id": 4533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4529, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "12952:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 4532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12961:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 4531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12967:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12961:7:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "12952:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4534, + "nodeType": "ExpressionStatement", + "src": "12952:16:25" + }, + { + "expression": { + "id": 4537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4535, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4436, + "src": "12986:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 4536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12996:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12986:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4538, + "nodeType": "ExpressionStatement", + "src": "12986:11:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4541, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "13029:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "id": 4544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13038:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "31", + "id": 4543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13044:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13038:7:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + }, + "src": "13029:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4551, + "nodeType": "IfStatement", + "src": "13025:66:25", + "trueBody": { + "id": 4550, + "nodeType": "Block", + "src": "13047:44:25", + "statements": [ + { + "expression": { + "id": 4548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4546, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4436, + "src": "13065:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 4547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13075:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13065:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4549, + "nodeType": "ExpressionStatement", + "src": "13065:11:25" + } + ] + } + } + ] + }, + { + "expression": { + "id": 4553, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4436, + "src": "13117:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4434, + "id": 4554, + "nodeType": "Return", + "src": "13110:13:25" + } + ] + }, + "documentation": { + "id": 4428, + "nodeType": "StructuredDocumentation", + "src": "12089:120:25", + "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 4556, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "12223:5:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4430, + "mutability": "mutable", + "name": "value", + "nameLocation": "12237:5:25", + "nodeType": "VariableDeclaration", + "scope": 4556, + "src": "12229:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12229:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12228:15:25" + }, + "returnParameters": { + "id": 4434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4433, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4556, + "src": "12267:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12267:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12266:9:25" + }, + "scope": 4736, + "src": "12214:916:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4590, + "nodeType": "Block", + "src": "13365:170:25", + "statements": [ + { + "id": 4589, + "nodeType": "UncheckedBlock", + "src": "13375:154:25", + "statements": [ + { + "assignments": [ + 4568 + ], + "declarations": [ + { + "constant": false, + "id": 4568, + "mutability": "mutable", + "name": "result", + "nameLocation": "13407:6:25", + "nodeType": "VariableDeclaration", + "scope": 4589, + "src": "13399:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4567, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13399:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4572, + "initialValue": { + "arguments": [ + { + "id": 4570, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4559, + "src": "13422:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4569, + "name": "log10", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4556, + 4591 + ], + "referencedDeclaration": 4556, + "src": "13416:5:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 4571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13416:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13399:29:25" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4573, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4568, + "src": "13449:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4575, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4562, + "src": "13476:8:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + ], + "id": 4574, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4735, + "src": "13459:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3693_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 4576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13459:26:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 4577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13489:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 4578, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4568, + "src": "13495:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13489:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 4580, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4559, + "src": "13504:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13489:20:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13459:50:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 4584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13516:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 4585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "13459:58:25", + "trueExpression": { + "hexValue": "31", + "id": 4583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13512:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 4586, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13458:60:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "13449:69:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4566, + "id": 4588, + "nodeType": "Return", + "src": "13442:76:25" + } + ] + } + ] + }, + "documentation": { + "id": 4557, + "nodeType": "StructuredDocumentation", + "src": "13136:143:25", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 4591, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "13293:5:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4559, + "mutability": "mutable", + "name": "value", + "nameLocation": "13307:5:25", + "nodeType": "VariableDeclaration", + "scope": 4591, + "src": "13299:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13299:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4562, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "13323:8:25", + "nodeType": "VariableDeclaration", + "scope": 4591, + "src": "13314:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 4561, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4560, + "name": "Rounding", + "nameLocations": [ + "13314:8:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3693, + "src": "13314:8:25" + }, + "referencedDeclaration": 3693, + "src": "13314:8:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "13298:34:25" + }, + "returnParameters": { + "id": 4566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4565, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4591, + "src": "13356:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13356:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13355:9:25" + }, + "scope": 4736, + "src": "13284:251:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4677, + "nodeType": "Block", + "src": "13855:600:25", + "statements": [ + { + "assignments": [ + 4600 + ], + "declarations": [ + { + "constant": false, + "id": 4600, + "mutability": "mutable", + "name": "result", + "nameLocation": "13873:6:25", + "nodeType": "VariableDeclaration", + "scope": 4677, + "src": "13865:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13865:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4602, + "initialValue": { + "hexValue": "30", + "id": 4601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13882:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13865:18:25" + }, + { + "id": 4674, + "nodeType": "UncheckedBlock", + "src": "13893:533:25", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4603, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4594, + "src": "13921:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 4604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "13921:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13936:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13921:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4617, + "nodeType": "IfStatement", + "src": "13917:98:25", + "trueBody": { + "id": 4616, + "nodeType": "Block", + "src": "13939:76:25", + "statements": [ + { + "expression": { + "id": 4610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4608, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4594, + "src": "13957:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 4609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13967:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "13957:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4611, + "nodeType": "ExpressionStatement", + "src": "13957:13:25" + }, + { + "expression": { + "id": 4614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4612, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4600, + "src": "13988:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 4613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13998:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "13988:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4615, + "nodeType": "ExpressionStatement", + "src": "13988:12:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4618, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4594, + "src": "14032:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 4619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14041:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "14032:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14046:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14032:15:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4632, + "nodeType": "IfStatement", + "src": "14028:95:25", + "trueBody": { + "id": 4631, + "nodeType": "Block", + "src": "14049:74:25", + "statements": [ + { + "expression": { + "id": 4625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4623, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4594, + "src": "14067:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 4624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14077:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "14067:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4626, + "nodeType": "ExpressionStatement", + "src": "14067:12:25" + }, + { + "expression": { + "id": 4629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4627, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4600, + "src": "14097:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 4628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14107:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "14097:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4630, + "nodeType": "ExpressionStatement", + "src": "14097:11:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4594, + "src": "14140:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 4634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14149:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14140:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14154:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14140:15:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4647, + "nodeType": "IfStatement", + "src": "14136:95:25", + "trueBody": { + "id": 4646, + "nodeType": "Block", + "src": "14157:74:25", + "statements": [ + { + "expression": { + "id": 4640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4638, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4594, + "src": "14175:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 4639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14185:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14175:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4641, + "nodeType": "ExpressionStatement", + "src": "14175:12:25" + }, + { + "expression": { + "id": 4644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4642, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4600, + "src": "14205:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 4643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14215:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "14205:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4645, + "nodeType": "ExpressionStatement", + "src": "14205:11:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4648, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4594, + "src": "14248:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 4649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14257:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14248:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14262:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14248:15:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4662, + "nodeType": "IfStatement", + "src": "14244:95:25", + "trueBody": { + "id": 4661, + "nodeType": "Block", + "src": "14265:74:25", + "statements": [ + { + "expression": { + "id": 4655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4653, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4594, + "src": "14283:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 4654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14293:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14283:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4656, + "nodeType": "ExpressionStatement", + "src": "14283:12:25" + }, + { + "expression": { + "id": 4659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4657, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4600, + "src": "14313:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 4658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14323:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14313:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4660, + "nodeType": "ExpressionStatement", + "src": "14313:11:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4663, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4594, + "src": "14356:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 4664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14365:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "14356:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14369:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14356:14:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4673, + "nodeType": "IfStatement", + "src": "14352:64:25", + "trueBody": { + "id": 4672, + "nodeType": "Block", + "src": "14372:44:25", + "statements": [ + { + "expression": { + "id": 4670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4668, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4600, + "src": "14390:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 4669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14400:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14390:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4671, + "nodeType": "ExpressionStatement", + "src": "14390:11:25" + } + ] + } + } + ] + }, + { + "expression": { + "id": 4675, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4600, + "src": "14442:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4598, + "id": 4676, + "nodeType": "Return", + "src": "14435:13:25" + } + ] + }, + "documentation": { + "id": 4592, + "nodeType": "StructuredDocumentation", + "src": "13541:246:25", + "text": " @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string." + }, + "id": 4678, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "13801:6:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "value", + "nameLocation": "13816:5:25", + "nodeType": "VariableDeclaration", + "scope": 4678, + "src": "13808:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13808:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13807:15:25" + }, + "returnParameters": { + "id": 4598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4597, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4678, + "src": "13846:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13846:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13845:9:25" + }, + "scope": 4736, + "src": "13792:663:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4715, + "nodeType": "Block", + "src": "14692:177:25", + "statements": [ + { + "id": 4714, + "nodeType": "UncheckedBlock", + "src": "14702:161:25", + "statements": [ + { + "assignments": [ + 4690 + ], + "declarations": [ + { + "constant": false, + "id": 4690, + "mutability": "mutable", + "name": "result", + "nameLocation": "14734:6:25", + "nodeType": "VariableDeclaration", + "scope": 4714, + "src": "14726:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14726:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4694, + "initialValue": { + "arguments": [ + { + "id": 4692, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4681, + "src": "14750:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4691, + "name": "log256", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4678, + 4716 + ], + "referencedDeclaration": 4678, + "src": "14743:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 4693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14743:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14726:30:25" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4695, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4690, + "src": "14777:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4697, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4684, + "src": "14804:8:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + ], + "id": 4696, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4735, + "src": "14787:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3693_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 4698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14787:26:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 4699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14817:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4700, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4690, + "src": "14823:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "33", + "id": 4701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14833:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "14823:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4703, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14822:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14817:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 4705, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4681, + "src": "14838:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14817:26:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14787:56:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 4709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14850:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 4710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "14787:64:25", + "trueExpression": { + "hexValue": "31", + "id": 4708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14846:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 4711, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14786:66:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "14777:75:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4688, + "id": 4713, + "nodeType": "Return", + "src": "14770:82:25" + } + ] + } + ] + }, + "documentation": { + "id": 4679, + "nodeType": "StructuredDocumentation", + "src": "14461:144:25", + "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 4716, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "14619:6:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4681, + "mutability": "mutable", + "name": "value", + "nameLocation": "14634:5:25", + "nodeType": "VariableDeclaration", + "scope": 4716, + "src": "14626:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14626:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4684, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "14650:8:25", + "nodeType": "VariableDeclaration", + "scope": 4716, + "src": "14641:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 4683, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4682, + "name": "Rounding", + "nameLocations": [ + "14641:8:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3693, + "src": "14641:8:25" + }, + "referencedDeclaration": 3693, + "src": "14641:8:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "14625:34:25" + }, + "returnParameters": { + "id": 4688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4687, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4716, + "src": "14683:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14683:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14682:9:25" + }, + "scope": 4736, + "src": "14610:259:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4734, + "nodeType": "Block", + "src": "15067:48:25", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4727, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4720, + "src": "15090:8:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + ], + "id": 4726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15084:5:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 4725, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "15084:5:25", + "typeDescriptions": {} + } + }, + "id": 4728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15084:15:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "32", + "id": 4729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15102:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15084:19:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 4731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15107:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15084:24:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4724, + "id": 4733, + "nodeType": "Return", + "src": "15077:31:25" + } + ] + }, + "documentation": { + "id": 4717, + "nodeType": "StructuredDocumentation", + "src": "14875:113:25", + "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." + }, + "id": 4735, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsignedRoundsUp", + "nameLocation": "15002:16:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4720, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "15028:8:25", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "15019:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 4719, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4718, + "name": "Rounding", + "nameLocations": [ + "15019:8:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3693, + "src": "15019:8:25" + }, + "referencedDeclaration": 3693, + "src": "15019:8:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$3693", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "15018:19:25" + }, + "returnParameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4723, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "15061:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4722, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15061:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15060:6:25" + }, + "scope": 4736, + "src": "14993:122:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4737, + "src": "203:14914:25", + "usedErrors": [ + 3688 + ], + "usedEvents": [] + } + ], + "src": "103:15015:25" + }, + "id": 25 + }, + "@openzeppelin/contracts/utils/math/SafeCast.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "exportedSymbols": { + "SafeCast": [ + 6491 + ] + }, + "id": 6492, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4738, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "192:24:26" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SafeCast", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 4739, + "nodeType": "StructuredDocumentation", + "src": "218:545:26", + "text": " @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 6491, + "linearizedBaseContracts": [ + 6491 + ], + "name": "SafeCast", + "nameLocation": "772:8:26", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 4740, + "nodeType": "StructuredDocumentation", + "src": "787:68:26", + "text": " @dev Value doesn't fit in an uint of `bits` size." + }, + "errorSelector": "6dfcc650", + "id": 4746, + "name": "SafeCastOverflowedUintDowncast", + "nameLocation": "866:30:26", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4745, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4742, + "mutability": "mutable", + "name": "bits", + "nameLocation": "903:4:26", + "nodeType": "VariableDeclaration", + "scope": 4746, + "src": "897:10:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4741, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "897:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4744, + "mutability": "mutable", + "name": "value", + "nameLocation": "917:5:26", + "nodeType": "VariableDeclaration", + "scope": 4746, + "src": "909:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4743, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "909:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "896:27:26" + }, + "src": "860:64:26" + }, + { + "documentation": { + "id": 4747, + "nodeType": "StructuredDocumentation", + "src": "930:75:26", + "text": " @dev An int value doesn't fit in an uint of `bits` size." + }, + "errorSelector": "a8ce4432", + "id": 4751, + "name": "SafeCastOverflowedIntToUint", + "nameLocation": "1016:27:26", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4749, + "mutability": "mutable", + "name": "value", + "nameLocation": "1051:5:26", + "nodeType": "VariableDeclaration", + "scope": 4751, + "src": "1044:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 4748, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1044:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1043:14:26" + }, + "src": "1010:48:26" + }, + { + "documentation": { + "id": 4752, + "nodeType": "StructuredDocumentation", + "src": "1064:67:26", + "text": " @dev Value doesn't fit in an int of `bits` size." + }, + "errorSelector": "327269a7", + "id": 4758, + "name": "SafeCastOverflowedIntDowncast", + "nameLocation": "1142:29:26", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4754, + "mutability": "mutable", + "name": "bits", + "nameLocation": "1178:4:26", + "nodeType": "VariableDeclaration", + "scope": 4758, + "src": "1172:10:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4753, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1172:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4756, + "mutability": "mutable", + "name": "value", + "nameLocation": "1191:5:26", + "nodeType": "VariableDeclaration", + "scope": 4758, + "src": "1184:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 4755, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1184:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1171:26:26" + }, + "src": "1136:62:26" + }, + { + "documentation": { + "id": 4759, + "nodeType": "StructuredDocumentation", + "src": "1204:75:26", + "text": " @dev An uint value doesn't fit in an int of `bits` size." + }, + "errorSelector": "24775e06", + "id": 4763, + "name": "SafeCastOverflowedUintToInt", + "nameLocation": "1290:27:26", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4761, + "mutability": "mutable", + "name": "value", + "nameLocation": "1326:5:26", + "nodeType": "VariableDeclaration", + "scope": 4763, + "src": "1318:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1318:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1317:15:26" + }, + "src": "1284:49:26" + }, + { + "body": { + "id": 4790, + "nodeType": "Block", + "src": "1690:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4771, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4766, + "src": "1704:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 4774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1717:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + }, + "typeName": { + "id": 4773, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "1717:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + } + ], + "id": 4772, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1712:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1712:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint248", + "typeString": "type(uint248)" + } + }, + "id": 4776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1726:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "1712:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "src": "1704:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4784, + "nodeType": "IfStatement", + "src": "1700:105:26", + "trueBody": { + "id": 4783, + "nodeType": "Block", + "src": "1731:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323438", + "id": 4779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1783:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + "value": "248" + }, + { + "id": 4780, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4766, + "src": "1788:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4778, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "1752:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 4781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1752:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 4782, + "nodeType": "RevertStatement", + "src": "1745:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4787, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4766, + "src": "1829:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1821:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + }, + "typeName": { + "id": 4785, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "1821:7:26", + "typeDescriptions": {} + } + }, + "id": 4788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1821:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "functionReturnParameters": 4770, + "id": 4789, + "nodeType": "Return", + "src": "1814:21:26" + } + ] + }, + "documentation": { + "id": 4764, + "nodeType": "StructuredDocumentation", + "src": "1339:280:26", + "text": " @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits" + }, + "id": 4791, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint248", + "nameLocation": "1633:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "value", + "nameLocation": "1651:5:26", + "nodeType": "VariableDeclaration", + "scope": 4791, + "src": "1643:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4765, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1643:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1642:15:26" + }, + "returnParameters": { + "id": 4770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4791, + "src": "1681:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + }, + "typeName": { + "id": 4768, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "1681:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "visibility": "internal" + } + ], + "src": "1680:9:26" + }, + "scope": 6491, + "src": "1624:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4818, + "nodeType": "Block", + "src": "2199:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4799, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4794, + "src": "2213:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 4802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2226:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint240_$", + "typeString": "type(uint240)" + }, + "typeName": { + "id": 4801, + "name": "uint240", + "nodeType": "ElementaryTypeName", + "src": "2226:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint240_$", + "typeString": "type(uint240)" + } + ], + "id": 4800, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2221:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2221:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint240", + "typeString": "type(uint240)" + } + }, + "id": 4804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2235:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "2221:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + } + }, + "src": "2213:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4812, + "nodeType": "IfStatement", + "src": "2209:105:26", + "trueBody": { + "id": 4811, + "nodeType": "Block", + "src": "2240:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323430", + "id": 4807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2292:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + "value": "240" + }, + { + "id": 4808, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4794, + "src": "2297:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4806, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "2261:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 4809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2261:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 4810, + "nodeType": "RevertStatement", + "src": "2254:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4815, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4794, + "src": "2338:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2330:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint240_$", + "typeString": "type(uint240)" + }, + "typeName": { + "id": 4813, + "name": "uint240", + "nodeType": "ElementaryTypeName", + "src": "2330:7:26", + "typeDescriptions": {} + } + }, + "id": 4816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2330:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + } + }, + "functionReturnParameters": 4798, + "id": 4817, + "nodeType": "Return", + "src": "2323:21:26" + } + ] + }, + "documentation": { + "id": 4792, + "nodeType": "StructuredDocumentation", + "src": "1848:280:26", + "text": " @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits" + }, + "id": 4819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint240", + "nameLocation": "2142:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "value", + "nameLocation": "2160:5:26", + "nodeType": "VariableDeclaration", + "scope": 4819, + "src": "2152:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4793, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2152:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2151:15:26" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4797, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4819, + "src": "2190:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + }, + "typeName": { + "id": 4796, + "name": "uint240", + "nodeType": "ElementaryTypeName", + "src": "2190:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + } + }, + "visibility": "internal" + } + ], + "src": "2189:9:26" + }, + "scope": 6491, + "src": "2133:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4846, + "nodeType": "Block", + "src": "2708:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4827, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4822, + "src": "2722:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 4830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2735:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint232_$", + "typeString": "type(uint232)" + }, + "typeName": { + "id": 4829, + "name": "uint232", + "nodeType": "ElementaryTypeName", + "src": "2735:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint232_$", + "typeString": "type(uint232)" + } + ], + "id": 4828, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2730:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2730:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint232", + "typeString": "type(uint232)" + } + }, + "id": 4832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2744:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "2730:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + } + }, + "src": "2722:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4840, + "nodeType": "IfStatement", + "src": "2718:105:26", + "trueBody": { + "id": 4839, + "nodeType": "Block", + "src": "2749:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323332", + "id": 4835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2801:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + "value": "232" + }, + { + "id": 4836, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4822, + "src": "2806:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4834, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "2770:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 4837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2770:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 4838, + "nodeType": "RevertStatement", + "src": "2763:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4843, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4822, + "src": "2847:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2839:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint232_$", + "typeString": "type(uint232)" + }, + "typeName": { + "id": 4841, + "name": "uint232", + "nodeType": "ElementaryTypeName", + "src": "2839:7:26", + "typeDescriptions": {} + } + }, + "id": 4844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2839:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + } + }, + "functionReturnParameters": 4826, + "id": 4845, + "nodeType": "Return", + "src": "2832:21:26" + } + ] + }, + "documentation": { + "id": 4820, + "nodeType": "StructuredDocumentation", + "src": "2357:280:26", + "text": " @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits" + }, + "id": 4847, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint232", + "nameLocation": "2651:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4822, + "mutability": "mutable", + "name": "value", + "nameLocation": "2669:5:26", + "nodeType": "VariableDeclaration", + "scope": 4847, + "src": "2661:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4821, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2661:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2660:15:26" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4847, + "src": "2699:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + }, + "typeName": { + "id": 4824, + "name": "uint232", + "nodeType": "ElementaryTypeName", + "src": "2699:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + } + }, + "visibility": "internal" + } + ], + "src": "2698:9:26" + }, + "scope": 6491, + "src": "2642:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4874, + "nodeType": "Block", + "src": "3217:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4855, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4850, + "src": "3231:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 4858, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3244:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 4857, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "3244:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + } + ], + "id": 4856, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3239:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3239:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint224", + "typeString": "type(uint224)" + } + }, + "id": 4860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3253:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "3239:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "3231:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4868, + "nodeType": "IfStatement", + "src": "3227:105:26", + "trueBody": { + "id": 4867, + "nodeType": "Block", + "src": "3258:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323234", + "id": 4863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3310:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + "value": "224" + }, + { + "id": 4864, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4850, + "src": "3315:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4862, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "3279:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 4865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3279:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 4866, + "nodeType": "RevertStatement", + "src": "3272:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4871, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4850, + "src": "3356:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3348:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 4869, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "3348:7:26", + "typeDescriptions": {} + } + }, + "id": 4872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3348:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "functionReturnParameters": 4854, + "id": 4873, + "nodeType": "Return", + "src": "3341:21:26" + } + ] + }, + "documentation": { + "id": 4848, + "nodeType": "StructuredDocumentation", + "src": "2866:280:26", + "text": " @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits" + }, + "id": 4875, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint224", + "nameLocation": "3160:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4850, + "mutability": "mutable", + "name": "value", + "nameLocation": "3178:5:26", + "nodeType": "VariableDeclaration", + "scope": 4875, + "src": "3170:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4849, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3170:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3169:15:26" + }, + "returnParameters": { + "id": 4854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4853, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4875, + "src": "3208:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 4852, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "3208:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "visibility": "internal" + } + ], + "src": "3207:9:26" + }, + "scope": 6491, + "src": "3151:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4902, + "nodeType": "Block", + "src": "3726:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4883, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4878, + "src": "3740:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 4886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3753:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint216_$", + "typeString": "type(uint216)" + }, + "typeName": { + "id": 4885, + "name": "uint216", + "nodeType": "ElementaryTypeName", + "src": "3753:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint216_$", + "typeString": "type(uint216)" + } + ], + "id": 4884, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3748:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3748:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint216", + "typeString": "type(uint216)" + } + }, + "id": 4888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3762:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "3748:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + } + }, + "src": "3740:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4896, + "nodeType": "IfStatement", + "src": "3736:105:26", + "trueBody": { + "id": 4895, + "nodeType": "Block", + "src": "3767:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323136", + "id": 4891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3819:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + "value": "216" + }, + { + "id": 4892, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4878, + "src": "3824:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4890, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "3788:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 4893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3788:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 4894, + "nodeType": "RevertStatement", + "src": "3781:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4899, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4878, + "src": "3865:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3857:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint216_$", + "typeString": "type(uint216)" + }, + "typeName": { + "id": 4897, + "name": "uint216", + "nodeType": "ElementaryTypeName", + "src": "3857:7:26", + "typeDescriptions": {} + } + }, + "id": 4900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3857:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + } + }, + "functionReturnParameters": 4882, + "id": 4901, + "nodeType": "Return", + "src": "3850:21:26" + } + ] + }, + "documentation": { + "id": 4876, + "nodeType": "StructuredDocumentation", + "src": "3375:280:26", + "text": " @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits" + }, + "id": 4903, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint216", + "nameLocation": "3669:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4878, + "mutability": "mutable", + "name": "value", + "nameLocation": "3687:5:26", + "nodeType": "VariableDeclaration", + "scope": 4903, + "src": "3679:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4877, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3679:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3678:15:26" + }, + "returnParameters": { + "id": 4882, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4881, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4903, + "src": "3717:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + }, + "typeName": { + "id": 4880, + "name": "uint216", + "nodeType": "ElementaryTypeName", + "src": "3717:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + } + }, + "visibility": "internal" + } + ], + "src": "3716:9:26" + }, + "scope": 6491, + "src": "3660:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4930, + "nodeType": "Block", + "src": "4235:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4911, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4906, + "src": "4249:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 4914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4262:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint208_$", + "typeString": "type(uint208)" + }, + "typeName": { + "id": 4913, + "name": "uint208", + "nodeType": "ElementaryTypeName", + "src": "4262:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint208_$", + "typeString": "type(uint208)" + } + ], + "id": 4912, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4257:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4257:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint208", + "typeString": "type(uint208)" + } + }, + "id": 4916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4271:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4257:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + } + }, + "src": "4249:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4924, + "nodeType": "IfStatement", + "src": "4245:105:26", + "trueBody": { + "id": 4923, + "nodeType": "Block", + "src": "4276:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323038", + "id": 4919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4328:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + "value": "208" + }, + { + "id": 4920, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4906, + "src": "4333:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4918, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "4297:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 4921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4297:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 4922, + "nodeType": "RevertStatement", + "src": "4290:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4927, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4906, + "src": "4374:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4366:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint208_$", + "typeString": "type(uint208)" + }, + "typeName": { + "id": 4925, + "name": "uint208", + "nodeType": "ElementaryTypeName", + "src": "4366:7:26", + "typeDescriptions": {} + } + }, + "id": 4928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4366:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + } + }, + "functionReturnParameters": 4910, + "id": 4929, + "nodeType": "Return", + "src": "4359:21:26" + } + ] + }, + "documentation": { + "id": 4904, + "nodeType": "StructuredDocumentation", + "src": "3884:280:26", + "text": " @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits" + }, + "id": 4931, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint208", + "nameLocation": "4178:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4907, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4906, + "mutability": "mutable", + "name": "value", + "nameLocation": "4196:5:26", + "nodeType": "VariableDeclaration", + "scope": 4931, + "src": "4188:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4905, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4188:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4187:15:26" + }, + "returnParameters": { + "id": 4910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4931, + "src": "4226:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + }, + "typeName": { + "id": 4908, + "name": "uint208", + "nodeType": "ElementaryTypeName", + "src": "4226:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + } + }, + "visibility": "internal" + } + ], + "src": "4225:9:26" + }, + "scope": 6491, + "src": "4169:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4958, + "nodeType": "Block", + "src": "4744:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4939, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4934, + "src": "4758:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 4942, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4771:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint200_$", + "typeString": "type(uint200)" + }, + "typeName": { + "id": 4941, + "name": "uint200", + "nodeType": "ElementaryTypeName", + "src": "4771:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint200_$", + "typeString": "type(uint200)" + } + ], + "id": 4940, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4766:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4766:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint200", + "typeString": "type(uint200)" + } + }, + "id": 4944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4780:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4766:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + } + }, + "src": "4758:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4952, + "nodeType": "IfStatement", + "src": "4754:105:26", + "trueBody": { + "id": 4951, + "nodeType": "Block", + "src": "4785:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323030", + "id": 4947, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4837:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + "value": "200" + }, + { + "id": 4948, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4934, + "src": "4842:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4946, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "4806:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 4949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4806:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 4950, + "nodeType": "RevertStatement", + "src": "4799:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4955, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4934, + "src": "4883:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4875:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint200_$", + "typeString": "type(uint200)" + }, + "typeName": { + "id": 4953, + "name": "uint200", + "nodeType": "ElementaryTypeName", + "src": "4875:7:26", + "typeDescriptions": {} + } + }, + "id": 4956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4875:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + } + }, + "functionReturnParameters": 4938, + "id": 4957, + "nodeType": "Return", + "src": "4868:21:26" + } + ] + }, + "documentation": { + "id": 4932, + "nodeType": "StructuredDocumentation", + "src": "4393:280:26", + "text": " @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits" + }, + "id": 4959, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint200", + "nameLocation": "4687:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4935, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4934, + "mutability": "mutable", + "name": "value", + "nameLocation": "4705:5:26", + "nodeType": "VariableDeclaration", + "scope": 4959, + "src": "4697:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4697:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4696:15:26" + }, + "returnParameters": { + "id": 4938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4937, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4959, + "src": "4735:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + }, + "typeName": { + "id": 4936, + "name": "uint200", + "nodeType": "ElementaryTypeName", + "src": "4735:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + } + }, + "visibility": "internal" + } + ], + "src": "4734:9:26" + }, + "scope": 6491, + "src": "4678:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4986, + "nodeType": "Block", + "src": "5253:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4967, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4962, + "src": "5267:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 4970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5280:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint192_$", + "typeString": "type(uint192)" + }, + "typeName": { + "id": 4969, + "name": "uint192", + "nodeType": "ElementaryTypeName", + "src": "5280:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint192_$", + "typeString": "type(uint192)" + } + ], + "id": 4968, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "5275:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5275:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint192", + "typeString": "type(uint192)" + } + }, + "id": 4972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5289:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "5275:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + } + }, + "src": "5267:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4980, + "nodeType": "IfStatement", + "src": "5263:105:26", + "trueBody": { + "id": 4979, + "nodeType": "Block", + "src": "5294:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313932", + "id": 4975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5346:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + "value": "192" + }, + { + "id": 4976, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4962, + "src": "5351:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4974, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "5315:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 4977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5315:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 4978, + "nodeType": "RevertStatement", + "src": "5308:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4983, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4962, + "src": "5392:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5384:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint192_$", + "typeString": "type(uint192)" + }, + "typeName": { + "id": 4981, + "name": "uint192", + "nodeType": "ElementaryTypeName", + "src": "5384:7:26", + "typeDescriptions": {} + } + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5384:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + } + }, + "functionReturnParameters": 4966, + "id": 4985, + "nodeType": "Return", + "src": "5377:21:26" + } + ] + }, + "documentation": { + "id": 4960, + "nodeType": "StructuredDocumentation", + "src": "4902:280:26", + "text": " @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits" + }, + "id": 4987, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint192", + "nameLocation": "5196:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4963, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4962, + "mutability": "mutable", + "name": "value", + "nameLocation": "5214:5:26", + "nodeType": "VariableDeclaration", + "scope": 4987, + "src": "5206:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4961, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5206:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5205:15:26" + }, + "returnParameters": { + "id": 4966, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4965, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4987, + "src": "5244:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + }, + "typeName": { + "id": 4964, + "name": "uint192", + "nodeType": "ElementaryTypeName", + "src": "5244:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + } + }, + "visibility": "internal" + } + ], + "src": "5243:9:26" + }, + "scope": 6491, + "src": "5187:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5014, + "nodeType": "Block", + "src": "5762:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4995, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4990, + "src": "5776:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 4998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5789:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint184_$", + "typeString": "type(uint184)" + }, + "typeName": { + "id": 4997, + "name": "uint184", + "nodeType": "ElementaryTypeName", + "src": "5789:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint184_$", + "typeString": "type(uint184)" + } + ], + "id": 4996, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "5784:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5784:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint184", + "typeString": "type(uint184)" + } + }, + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5798:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "5784:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + } + }, + "src": "5776:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5008, + "nodeType": "IfStatement", + "src": "5772:105:26", + "trueBody": { + "id": 5007, + "nodeType": "Block", + "src": "5803:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313834", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5855:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + "value": "184" + }, + { + "id": 5004, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4990, + "src": "5860:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5002, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "5824:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5824:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5006, + "nodeType": "RevertStatement", + "src": "5817:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5011, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4990, + "src": "5901:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5010, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5893:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint184_$", + "typeString": "type(uint184)" + }, + "typeName": { + "id": 5009, + "name": "uint184", + "nodeType": "ElementaryTypeName", + "src": "5893:7:26", + "typeDescriptions": {} + } + }, + "id": 5012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5893:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + } + }, + "functionReturnParameters": 4994, + "id": 5013, + "nodeType": "Return", + "src": "5886:21:26" + } + ] + }, + "documentation": { + "id": 4988, + "nodeType": "StructuredDocumentation", + "src": "5411:280:26", + "text": " @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits" + }, + "id": 5015, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint184", + "nameLocation": "5705:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4990, + "mutability": "mutable", + "name": "value", + "nameLocation": "5723:5:26", + "nodeType": "VariableDeclaration", + "scope": 5015, + "src": "5715:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5715:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5714:15:26" + }, + "returnParameters": { + "id": 4994, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4993, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5015, + "src": "5753:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + }, + "typeName": { + "id": 4992, + "name": "uint184", + "nodeType": "ElementaryTypeName", + "src": "5753:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + } + }, + "visibility": "internal" + } + ], + "src": "5752:9:26" + }, + "scope": 6491, + "src": "5696:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5042, + "nodeType": "Block", + "src": "6271:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5023, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "6285:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6298:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint176_$", + "typeString": "type(uint176)" + }, + "typeName": { + "id": 5025, + "name": "uint176", + "nodeType": "ElementaryTypeName", + "src": "6298:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint176_$", + "typeString": "type(uint176)" + } + ], + "id": 5024, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "6293:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5027, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6293:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint176", + "typeString": "type(uint176)" + } + }, + "id": 5028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6307:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "6293:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + } + }, + "src": "6285:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5036, + "nodeType": "IfStatement", + "src": "6281:105:26", + "trueBody": { + "id": 5035, + "nodeType": "Block", + "src": "6312:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313736", + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6364:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + "value": "176" + }, + { + "id": 5032, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "6369:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5030, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "6333:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6333:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5034, + "nodeType": "RevertStatement", + "src": "6326:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5039, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "6410:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6402:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint176_$", + "typeString": "type(uint176)" + }, + "typeName": { + "id": 5037, + "name": "uint176", + "nodeType": "ElementaryTypeName", + "src": "6402:7:26", + "typeDescriptions": {} + } + }, + "id": 5040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6402:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + } + }, + "functionReturnParameters": 5022, + "id": 5041, + "nodeType": "Return", + "src": "6395:21:26" + } + ] + }, + "documentation": { + "id": 5016, + "nodeType": "StructuredDocumentation", + "src": "5920:280:26", + "text": " @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits" + }, + "id": 5043, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint176", + "nameLocation": "6214:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5018, + "mutability": "mutable", + "name": "value", + "nameLocation": "6232:5:26", + "nodeType": "VariableDeclaration", + "scope": 5043, + "src": "6224:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6224:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6223:15:26" + }, + "returnParameters": { + "id": 5022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5021, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5043, + "src": "6262:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + }, + "typeName": { + "id": 5020, + "name": "uint176", + "nodeType": "ElementaryTypeName", + "src": "6262:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + } + }, + "visibility": "internal" + } + ], + "src": "6261:9:26" + }, + "scope": 6491, + "src": "6205:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5070, + "nodeType": "Block", + "src": "6780:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5046, + "src": "6794:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6807:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint168_$", + "typeString": "type(uint168)" + }, + "typeName": { + "id": 5053, + "name": "uint168", + "nodeType": "ElementaryTypeName", + "src": "6807:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint168_$", + "typeString": "type(uint168)" + } + ], + "id": 5052, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "6802:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6802:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint168", + "typeString": "type(uint168)" + } + }, + "id": 5056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6816:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "6802:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + } + }, + "src": "6794:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5064, + "nodeType": "IfStatement", + "src": "6790:105:26", + "trueBody": { + "id": 5063, + "nodeType": "Block", + "src": "6821:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313638", + "id": 5059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6873:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + "value": "168" + }, + { + "id": 5060, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5046, + "src": "6878:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5058, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "6842:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6842:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5062, + "nodeType": "RevertStatement", + "src": "6835:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5067, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5046, + "src": "6919:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6911:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint168_$", + "typeString": "type(uint168)" + }, + "typeName": { + "id": 5065, + "name": "uint168", + "nodeType": "ElementaryTypeName", + "src": "6911:7:26", + "typeDescriptions": {} + } + }, + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6911:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + } + }, + "functionReturnParameters": 5050, + "id": 5069, + "nodeType": "Return", + "src": "6904:21:26" + } + ] + }, + "documentation": { + "id": 5044, + "nodeType": "StructuredDocumentation", + "src": "6429:280:26", + "text": " @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits" + }, + "id": 5071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint168", + "nameLocation": "6723:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5046, + "mutability": "mutable", + "name": "value", + "nameLocation": "6741:5:26", + "nodeType": "VariableDeclaration", + "scope": 5071, + "src": "6733:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5045, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6733:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6732:15:26" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5049, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5071, + "src": "6771:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + }, + "typeName": { + "id": 5048, + "name": "uint168", + "nodeType": "ElementaryTypeName", + "src": "6771:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + } + }, + "visibility": "internal" + } + ], + "src": "6770:9:26" + }, + "scope": 6491, + "src": "6714:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5098, + "nodeType": "Block", + "src": "7289:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5079, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5074, + "src": "7303:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7316:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 5081, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7316:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + } + ], + "id": 5080, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "7311:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7311:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint160", + "typeString": "type(uint160)" + } + }, + "id": 5084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7325:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "7311:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "src": "7303:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5092, + "nodeType": "IfStatement", + "src": "7299:105:26", + "trueBody": { + "id": 5091, + "nodeType": "Block", + "src": "7330:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313630", + "id": 5087, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7382:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + }, + { + "id": 5088, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5074, + "src": "7387:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5086, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "7351:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7351:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5090, + "nodeType": "RevertStatement", + "src": "7344:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5095, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5074, + "src": "7428:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5094, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7420:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 5093, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7420:7:26", + "typeDescriptions": {} + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7420:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "functionReturnParameters": 5078, + "id": 5097, + "nodeType": "Return", + "src": "7413:21:26" + } + ] + }, + "documentation": { + "id": 5072, + "nodeType": "StructuredDocumentation", + "src": "6938:280:26", + "text": " @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits" + }, + "id": 5099, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint160", + "nameLocation": "7232:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5074, + "mutability": "mutable", + "name": "value", + "nameLocation": "7250:5:26", + "nodeType": "VariableDeclaration", + "scope": 5099, + "src": "7242:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7242:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7241:15:26" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5099, + "src": "7280:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + }, + "typeName": { + "id": 5076, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7280:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "visibility": "internal" + } + ], + "src": "7279:9:26" + }, + "scope": 6491, + "src": "7223:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5126, + "nodeType": "Block", + "src": "7798:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5102, + "src": "7812:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7825:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint152_$", + "typeString": "type(uint152)" + }, + "typeName": { + "id": 5109, + "name": "uint152", + "nodeType": "ElementaryTypeName", + "src": "7825:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint152_$", + "typeString": "type(uint152)" + } + ], + "id": 5108, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "7820:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7820:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint152", + "typeString": "type(uint152)" + } + }, + "id": 5112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7834:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "7820:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + } + }, + "src": "7812:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5120, + "nodeType": "IfStatement", + "src": "7808:105:26", + "trueBody": { + "id": 5119, + "nodeType": "Block", + "src": "7839:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313532", + "id": 5115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7891:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + "value": "152" + }, + { + "id": 5116, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5102, + "src": "7896:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5114, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "7860:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7860:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5118, + "nodeType": "RevertStatement", + "src": "7853:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5123, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5102, + "src": "7937:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7929:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint152_$", + "typeString": "type(uint152)" + }, + "typeName": { + "id": 5121, + "name": "uint152", + "nodeType": "ElementaryTypeName", + "src": "7929:7:26", + "typeDescriptions": {} + } + }, + "id": 5124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7929:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + } + }, + "functionReturnParameters": 5106, + "id": 5125, + "nodeType": "Return", + "src": "7922:21:26" + } + ] + }, + "documentation": { + "id": 5100, + "nodeType": "StructuredDocumentation", + "src": "7447:280:26", + "text": " @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits" + }, + "id": 5127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint152", + "nameLocation": "7741:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5102, + "mutability": "mutable", + "name": "value", + "nameLocation": "7759:5:26", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "7751:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7751:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7750:15:26" + }, + "returnParameters": { + "id": 5106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5105, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "7789:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + }, + "typeName": { + "id": 5104, + "name": "uint152", + "nodeType": "ElementaryTypeName", + "src": "7789:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + } + }, + "visibility": "internal" + } + ], + "src": "7788:9:26" + }, + "scope": 6491, + "src": "7732:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5154, + "nodeType": "Block", + "src": "8307:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5135, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5130, + "src": "8321:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8334:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint144_$", + "typeString": "type(uint144)" + }, + "typeName": { + "id": 5137, + "name": "uint144", + "nodeType": "ElementaryTypeName", + "src": "8334:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint144_$", + "typeString": "type(uint144)" + } + ], + "id": 5136, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8329:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8329:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint144", + "typeString": "type(uint144)" + } + }, + "id": 5140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8343:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8329:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + } + }, + "src": "8321:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5148, + "nodeType": "IfStatement", + "src": "8317:105:26", + "trueBody": { + "id": 5147, + "nodeType": "Block", + "src": "8348:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313434", + "id": 5143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8400:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + "value": "144" + }, + { + "id": 5144, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5130, + "src": "8405:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5142, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "8369:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8369:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5146, + "nodeType": "RevertStatement", + "src": "8362:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5130, + "src": "8446:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8438:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint144_$", + "typeString": "type(uint144)" + }, + "typeName": { + "id": 5149, + "name": "uint144", + "nodeType": "ElementaryTypeName", + "src": "8438:7:26", + "typeDescriptions": {} + } + }, + "id": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8438:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + } + }, + "functionReturnParameters": 5134, + "id": 5153, + "nodeType": "Return", + "src": "8431:21:26" + } + ] + }, + "documentation": { + "id": 5128, + "nodeType": "StructuredDocumentation", + "src": "7956:280:26", + "text": " @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits" + }, + "id": 5155, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint144", + "nameLocation": "8250:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5130, + "mutability": "mutable", + "name": "value", + "nameLocation": "8268:5:26", + "nodeType": "VariableDeclaration", + "scope": 5155, + "src": "8260:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8260:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8259:15:26" + }, + "returnParameters": { + "id": 5134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5133, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5155, + "src": "8298:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + }, + "typeName": { + "id": 5132, + "name": "uint144", + "nodeType": "ElementaryTypeName", + "src": "8298:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + } + }, + "visibility": "internal" + } + ], + "src": "8297:9:26" + }, + "scope": 6491, + "src": "8241:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5182, + "nodeType": "Block", + "src": "8816:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5163, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5158, + "src": "8830:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8843:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint136_$", + "typeString": "type(uint136)" + }, + "typeName": { + "id": 5165, + "name": "uint136", + "nodeType": "ElementaryTypeName", + "src": "8843:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint136_$", + "typeString": "type(uint136)" + } + ], + "id": 5164, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8838:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8838:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint136", + "typeString": "type(uint136)" + } + }, + "id": 5168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8852:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8838:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + } + }, + "src": "8830:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5176, + "nodeType": "IfStatement", + "src": "8826:105:26", + "trueBody": { + "id": 5175, + "nodeType": "Block", + "src": "8857:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313336", + "id": 5171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8909:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + "value": "136" + }, + { + "id": 5172, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5158, + "src": "8914:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5170, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "8878:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8878:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5174, + "nodeType": "RevertStatement", + "src": "8871:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5179, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5158, + "src": "8955:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8947:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint136_$", + "typeString": "type(uint136)" + }, + "typeName": { + "id": 5177, + "name": "uint136", + "nodeType": "ElementaryTypeName", + "src": "8947:7:26", + "typeDescriptions": {} + } + }, + "id": 5180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8947:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + } + }, + "functionReturnParameters": 5162, + "id": 5181, + "nodeType": "Return", + "src": "8940:21:26" + } + ] + }, + "documentation": { + "id": 5156, + "nodeType": "StructuredDocumentation", + "src": "8465:280:26", + "text": " @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits" + }, + "id": 5183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint136", + "nameLocation": "8759:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5159, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5158, + "mutability": "mutable", + "name": "value", + "nameLocation": "8777:5:26", + "nodeType": "VariableDeclaration", + "scope": 5183, + "src": "8769:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8769:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8768:15:26" + }, + "returnParameters": { + "id": 5162, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5161, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5183, + "src": "8807:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + }, + "typeName": { + "id": 5160, + "name": "uint136", + "nodeType": "ElementaryTypeName", + "src": "8807:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + } + }, + "visibility": "internal" + } + ], + "src": "8806:9:26" + }, + "scope": 6491, + "src": "8750:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "9325:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5191, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5186, + "src": "9339:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9352:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + }, + "typeName": { + "id": 5193, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9352:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + } + ], + "id": 5192, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "9347:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5195, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9347:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint128", + "typeString": "type(uint128)" + } + }, + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9361:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "9347:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "9339:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5204, + "nodeType": "IfStatement", + "src": "9335:105:26", + "trueBody": { + "id": 5203, + "nodeType": "Block", + "src": "9366:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313238", + "id": 5199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9418:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + { + "id": 5200, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5186, + "src": "9423:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5198, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "9387:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9387:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5202, + "nodeType": "RevertStatement", + "src": "9380:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5207, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5186, + "src": "9464:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9456:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + }, + "typeName": { + "id": 5205, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9456:7:26", + "typeDescriptions": {} + } + }, + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9456:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 5190, + "id": 5209, + "nodeType": "Return", + "src": "9449:21:26" + } + ] + }, + "documentation": { + "id": 5184, + "nodeType": "StructuredDocumentation", + "src": "8974:280:26", + "text": " @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits" + }, + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint128", + "nameLocation": "9268:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5186, + "mutability": "mutable", + "name": "value", + "nameLocation": "9286:5:26", + "nodeType": "VariableDeclaration", + "scope": 5211, + "src": "9278:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5185, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9278:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9277:15:26" + }, + "returnParameters": { + "id": 5190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5189, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5211, + "src": "9316:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 5188, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9316:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "9315:9:26" + }, + "scope": 6491, + "src": "9259:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5238, + "nodeType": "Block", + "src": "9834:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5219, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "9848:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9861:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint120_$", + "typeString": "type(uint120)" + }, + "typeName": { + "id": 5221, + "name": "uint120", + "nodeType": "ElementaryTypeName", + "src": "9861:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint120_$", + "typeString": "type(uint120)" + } + ], + "id": 5220, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "9856:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9856:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint120", + "typeString": "type(uint120)" + } + }, + "id": 5224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9870:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "9856:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + } + }, + "src": "9848:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5232, + "nodeType": "IfStatement", + "src": "9844:105:26", + "trueBody": { + "id": 5231, + "nodeType": "Block", + "src": "9875:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313230", + "id": 5227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9927:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + "value": "120" + }, + { + "id": 5228, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "9932:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5226, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "9896:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9896:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5230, + "nodeType": "RevertStatement", + "src": "9889:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5235, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "9973:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9965:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint120_$", + "typeString": "type(uint120)" + }, + "typeName": { + "id": 5233, + "name": "uint120", + "nodeType": "ElementaryTypeName", + "src": "9965:7:26", + "typeDescriptions": {} + } + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9965:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + } + }, + "functionReturnParameters": 5218, + "id": 5237, + "nodeType": "Return", + "src": "9958:21:26" + } + ] + }, + "documentation": { + "id": 5212, + "nodeType": "StructuredDocumentation", + "src": "9483:280:26", + "text": " @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits" + }, + "id": 5239, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint120", + "nameLocation": "9777:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5214, + "mutability": "mutable", + "name": "value", + "nameLocation": "9795:5:26", + "nodeType": "VariableDeclaration", + "scope": 5239, + "src": "9787:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5213, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9787:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9786:15:26" + }, + "returnParameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5239, + "src": "9825:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + }, + "typeName": { + "id": 5216, + "name": "uint120", + "nodeType": "ElementaryTypeName", + "src": "9825:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + } + }, + "visibility": "internal" + } + ], + "src": "9824:9:26" + }, + "scope": 6491, + "src": "9768:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "10343:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5242, + "src": "10357:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10370:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5249, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "10370:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + } + ], + "id": 5248, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10365:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10365:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint112", + "typeString": "type(uint112)" + } + }, + "id": 5252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10379:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10365:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "10357:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5260, + "nodeType": "IfStatement", + "src": "10353:105:26", + "trueBody": { + "id": 5259, + "nodeType": "Block", + "src": "10384:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313132", + "id": 5255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10436:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + { + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5242, + "src": "10441:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5254, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "10405:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10405:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5258, + "nodeType": "RevertStatement", + "src": "10398:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5263, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5242, + "src": "10482:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10474:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5261, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "10474:7:26", + "typeDescriptions": {} + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10474:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "functionReturnParameters": 5246, + "id": 5265, + "nodeType": "Return", + "src": "10467:21:26" + } + ] + }, + "documentation": { + "id": 5240, + "nodeType": "StructuredDocumentation", + "src": "9992:280:26", + "text": " @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits" + }, + "id": 5267, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint112", + "nameLocation": "10286:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5242, + "mutability": "mutable", + "name": "value", + "nameLocation": "10304:5:26", + "nodeType": "VariableDeclaration", + "scope": 5267, + "src": "10296:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10296:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10295:15:26" + }, + "returnParameters": { + "id": 5246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5245, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5267, + "src": "10334:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5244, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "10334:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "visibility": "internal" + } + ], + "src": "10333:9:26" + }, + "scope": 6491, + "src": "10277:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5294, + "nodeType": "Block", + "src": "10852:152:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5275, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "10866:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10879:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint104_$", + "typeString": "type(uint104)" + }, + "typeName": { + "id": 5277, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "10879:7:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint104_$", + "typeString": "type(uint104)" + } + ], + "id": 5276, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10874:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10874:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint104", + "typeString": "type(uint104)" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10888:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10874:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "src": "10866:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5288, + "nodeType": "IfStatement", + "src": "10862:105:26", + "trueBody": { + "id": 5287, + "nodeType": "Block", + "src": "10893:74:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313034", + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10945:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + "value": "104" + }, + { + "id": 5284, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "10950:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5282, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "10914:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10914:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5286, + "nodeType": "RevertStatement", + "src": "10907:49:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5291, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "10991:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10983:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint104_$", + "typeString": "type(uint104)" + }, + "typeName": { + "id": 5289, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "10983:7:26", + "typeDescriptions": {} + } + }, + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10983:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "functionReturnParameters": 5274, + "id": 5293, + "nodeType": "Return", + "src": "10976:21:26" + } + ] + }, + "documentation": { + "id": 5268, + "nodeType": "StructuredDocumentation", + "src": "10501:280:26", + "text": " @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits" + }, + "id": 5295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint104", + "nameLocation": "10795:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "value", + "nameLocation": "10813:5:26", + "nodeType": "VariableDeclaration", + "scope": 5295, + "src": "10805:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10805:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10804:15:26" + }, + "returnParameters": { + "id": 5274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5273, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5295, + "src": "10843:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + "typeName": { + "id": 5272, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "10843:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "visibility": "internal" + } + ], + "src": "10842:9:26" + }, + "scope": 6491, + "src": "10786:218:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5322, + "nodeType": "Block", + "src": "11355:149:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5303, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5298, + "src": "11369:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11382:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 5305, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11382:6:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + } + ], + "id": 5304, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "11377:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11377:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint96", + "typeString": "type(uint96)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11390:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "11377:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "11369:24:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5316, + "nodeType": "IfStatement", + "src": "11365:103:26", + "trueBody": { + "id": 5315, + "nodeType": "Block", + "src": "11395:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3936", + "id": 5311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11447:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + { + "id": 5312, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5298, + "src": "11451:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5310, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "11416:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11416:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5314, + "nodeType": "RevertStatement", + "src": "11409:48:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5319, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5298, + "src": "11491:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 5317, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11484:6:26", + "typeDescriptions": {} + } + }, + "id": 5320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11484:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 5302, + "id": 5321, + "nodeType": "Return", + "src": "11477:20:26" + } + ] + }, + "documentation": { + "id": 5296, + "nodeType": "StructuredDocumentation", + "src": "11010:276:26", + "text": " @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits" + }, + "id": 5323, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint96", + "nameLocation": "11300:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5299, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5298, + "mutability": "mutable", + "name": "value", + "nameLocation": "11317:5:26", + "nodeType": "VariableDeclaration", + "scope": 5323, + "src": "11309:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5297, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11309:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11308:15:26" + }, + "returnParameters": { + "id": 5302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5301, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5323, + "src": "11347:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 5300, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11347:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "11346:8:26" + }, + "scope": 6491, + "src": "11291:213:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5350, + "nodeType": "Block", + "src": "11855:149:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5331, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5326, + "src": "11869:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11882:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint88_$", + "typeString": "type(uint88)" + }, + "typeName": { + "id": 5333, + "name": "uint88", + "nodeType": "ElementaryTypeName", + "src": "11882:6:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint88_$", + "typeString": "type(uint88)" + } + ], + "id": 5332, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "11877:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11877:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint88", + "typeString": "type(uint88)" + } + }, + "id": 5336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11890:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "11877:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + } + }, + "src": "11869:24:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5344, + "nodeType": "IfStatement", + "src": "11865:103:26", + "trueBody": { + "id": 5343, + "nodeType": "Block", + "src": "11895:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3838", + "id": 5339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11947:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + "value": "88" + }, + { + "id": 5340, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5326, + "src": "11951:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5338, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "11916:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11916:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5342, + "nodeType": "RevertStatement", + "src": "11909:48:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5347, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5326, + "src": "11991:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11984:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint88_$", + "typeString": "type(uint88)" + }, + "typeName": { + "id": 5345, + "name": "uint88", + "nodeType": "ElementaryTypeName", + "src": "11984:6:26", + "typeDescriptions": {} + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11984:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + } + }, + "functionReturnParameters": 5330, + "id": 5349, + "nodeType": "Return", + "src": "11977:20:26" + } + ] + }, + "documentation": { + "id": 5324, + "nodeType": "StructuredDocumentation", + "src": "11510:276:26", + "text": " @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits" + }, + "id": 5351, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint88", + "nameLocation": "11800:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5327, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5326, + "mutability": "mutable", + "name": "value", + "nameLocation": "11817:5:26", + "nodeType": "VariableDeclaration", + "scope": 5351, + "src": "11809:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5325, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11809:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11808:15:26" + }, + "returnParameters": { + "id": 5330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5329, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5351, + "src": "11847:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + }, + "typeName": { + "id": 5328, + "name": "uint88", + "nodeType": "ElementaryTypeName", + "src": "11847:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + } + }, + "visibility": "internal" + } + ], + "src": "11846:8:26" + }, + "scope": 6491, + "src": "11791:213:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5378, + "nodeType": "Block", + "src": "12355:149:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5359, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5354, + "src": "12369:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12382:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint80_$", + "typeString": "type(uint80)" + }, + "typeName": { + "id": 5361, + "name": "uint80", + "nodeType": "ElementaryTypeName", + "src": "12382:6:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint80_$", + "typeString": "type(uint80)" + } + ], + "id": 5360, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "12377:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12377:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint80", + "typeString": "type(uint80)" + } + }, + "id": 5364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12390:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "12377:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + } + }, + "src": "12369:24:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5372, + "nodeType": "IfStatement", + "src": "12365:103:26", + "trueBody": { + "id": 5371, + "nodeType": "Block", + "src": "12395:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3830", + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12447:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + "value": "80" + }, + { + "id": 5368, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5354, + "src": "12451:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5366, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "12416:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12416:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5370, + "nodeType": "RevertStatement", + "src": "12409:48:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5375, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5354, + "src": "12491:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12484:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint80_$", + "typeString": "type(uint80)" + }, + "typeName": { + "id": 5373, + "name": "uint80", + "nodeType": "ElementaryTypeName", + "src": "12484:6:26", + "typeDescriptions": {} + } + }, + "id": 5376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12484:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + } + }, + "functionReturnParameters": 5358, + "id": 5377, + "nodeType": "Return", + "src": "12477:20:26" + } + ] + }, + "documentation": { + "id": 5352, + "nodeType": "StructuredDocumentation", + "src": "12010:276:26", + "text": " @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits" + }, + "id": 5379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint80", + "nameLocation": "12300:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5354, + "mutability": "mutable", + "name": "value", + "nameLocation": "12317:5:26", + "nodeType": "VariableDeclaration", + "scope": 5379, + "src": "12309:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12309:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12308:15:26" + }, + "returnParameters": { + "id": 5358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5357, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5379, + "src": "12347:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + }, + "typeName": { + "id": 5356, + "name": "uint80", + "nodeType": "ElementaryTypeName", + "src": "12347:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + } + }, + "visibility": "internal" + } + ], + "src": "12346:8:26" + }, + "scope": 6491, + "src": "12291:213:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5406, + "nodeType": "Block", + "src": "12855:149:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5387, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5382, + "src": "12869:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12882:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + }, + "typeName": { + "id": 5389, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "12882:6:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + } + ], + "id": 5388, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "12877:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5391, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12877:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint72", + "typeString": "type(uint72)" + } + }, + "id": 5392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12890:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "12877:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "src": "12869:24:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5400, + "nodeType": "IfStatement", + "src": "12865:103:26", + "trueBody": { + "id": 5399, + "nodeType": "Block", + "src": "12895:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3732", + "id": 5395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12947:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + "value": "72" + }, + { + "id": 5396, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5382, + "src": "12951:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5394, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "12916:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12916:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5398, + "nodeType": "RevertStatement", + "src": "12909:48:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5403, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5382, + "src": "12991:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5402, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12984:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + }, + "typeName": { + "id": 5401, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "12984:6:26", + "typeDescriptions": {} + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12984:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "functionReturnParameters": 5386, + "id": 5405, + "nodeType": "Return", + "src": "12977:20:26" + } + ] + }, + "documentation": { + "id": 5380, + "nodeType": "StructuredDocumentation", + "src": "12510:276:26", + "text": " @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits" + }, + "id": 5407, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint72", + "nameLocation": "12800:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5382, + "mutability": "mutable", + "name": "value", + "nameLocation": "12817:5:26", + "nodeType": "VariableDeclaration", + "scope": 5407, + "src": "12809:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12809:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12808:15:26" + }, + "returnParameters": { + "id": 5386, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5385, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5407, + "src": "12847:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 5384, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "12847:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "src": "12846:8:26" + }, + "scope": 6491, + "src": "12791:213:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "13355:149:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5415, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5410, + "src": "13369:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13382:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 5417, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13382:6:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 5416, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "13377:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13377:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "13390:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "13377:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "13369:24:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5428, + "nodeType": "IfStatement", + "src": "13365:103:26", + "trueBody": { + "id": 5427, + "nodeType": "Block", + "src": "13395:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3634", + "id": 5423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13447:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + { + "id": 5424, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5410, + "src": "13451:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5422, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "13416:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13416:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5426, + "nodeType": "RevertStatement", + "src": "13409:48:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5431, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5410, + "src": "13491:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13484:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 5429, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13484:6:26", + "typeDescriptions": {} + } + }, + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13484:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 5414, + "id": 5433, + "nodeType": "Return", + "src": "13477:20:26" + } + ] + }, + "documentation": { + "id": 5408, + "nodeType": "StructuredDocumentation", + "src": "13010:276:26", + "text": " @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits" + }, + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint64", + "nameLocation": "13300:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5410, + "mutability": "mutable", + "name": "value", + "nameLocation": "13317:5:26", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "13309:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13309:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13308:15:26" + }, + "returnParameters": { + "id": 5414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5413, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "13347:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 5412, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13347:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "13346:8:26" + }, + "scope": 6491, + "src": "13291:213:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5462, + "nodeType": "Block", + "src": "13855:149:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5443, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5438, + "src": "13869:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13882:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint56_$", + "typeString": "type(uint56)" + }, + "typeName": { + "id": 5445, + "name": "uint56", + "nodeType": "ElementaryTypeName", + "src": "13882:6:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint56_$", + "typeString": "type(uint56)" + } + ], + "id": 5444, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "13877:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13877:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint56", + "typeString": "type(uint56)" + } + }, + "id": 5448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "13890:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "13877:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + } + }, + "src": "13869:24:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5456, + "nodeType": "IfStatement", + "src": "13865:103:26", + "trueBody": { + "id": 5455, + "nodeType": "Block", + "src": "13895:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3536", + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13947:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + "value": "56" + }, + { + "id": 5452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5438, + "src": "13951:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5450, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "13916:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13916:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5454, + "nodeType": "RevertStatement", + "src": "13909:48:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5459, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5438, + "src": "13991:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13984:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint56_$", + "typeString": "type(uint56)" + }, + "typeName": { + "id": 5457, + "name": "uint56", + "nodeType": "ElementaryTypeName", + "src": "13984:6:26", + "typeDescriptions": {} + } + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13984:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + } + }, + "functionReturnParameters": 5442, + "id": 5461, + "nodeType": "Return", + "src": "13977:20:26" + } + ] + }, + "documentation": { + "id": 5436, + "nodeType": "StructuredDocumentation", + "src": "13510:276:26", + "text": " @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits" + }, + "id": 5463, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint56", + "nameLocation": "13800:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5438, + "mutability": "mutable", + "name": "value", + "nameLocation": "13817:5:26", + "nodeType": "VariableDeclaration", + "scope": 5463, + "src": "13809:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13809:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13808:15:26" + }, + "returnParameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5441, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5463, + "src": "13847:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + }, + "typeName": { + "id": 5440, + "name": "uint56", + "nodeType": "ElementaryTypeName", + "src": "13847:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + } + }, + "visibility": "internal" + } + ], + "src": "13846:8:26" + }, + "scope": 6491, + "src": "13791:213:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5490, + "nodeType": "Block", + "src": "14355:149:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5471, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5466, + "src": "14369:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14382:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 5473, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14382:6:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + } + ], + "id": 5472, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "14377:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14377:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint48", + "typeString": "type(uint48)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14390:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "14377:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "14369:24:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5484, + "nodeType": "IfStatement", + "src": "14365:103:26", + "trueBody": { + "id": 5483, + "nodeType": "Block", + "src": "14395:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3438", + "id": 5479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14447:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + { + "id": 5480, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5466, + "src": "14451:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "14416:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14416:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5482, + "nodeType": "RevertStatement", + "src": "14409:48:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5487, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5466, + "src": "14491:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14484:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 5485, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14484:6:26", + "typeDescriptions": {} + } + }, + "id": 5488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14484:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "functionReturnParameters": 5470, + "id": 5489, + "nodeType": "Return", + "src": "14477:20:26" + } + ] + }, + "documentation": { + "id": 5464, + "nodeType": "StructuredDocumentation", + "src": "14010:276:26", + "text": " @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits" + }, + "id": 5491, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint48", + "nameLocation": "14300:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5466, + "mutability": "mutable", + "name": "value", + "nameLocation": "14317:5:26", + "nodeType": "VariableDeclaration", + "scope": 5491, + "src": "14309:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5465, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14309:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14308:15:26" + }, + "returnParameters": { + "id": 5470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5469, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5491, + "src": "14347:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 5468, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14347:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "14346:8:26" + }, + "scope": 6491, + "src": "14291:213:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5518, + "nodeType": "Block", + "src": "14855:149:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5494, + "src": "14869:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14882:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint40_$", + "typeString": "type(uint40)" + }, + "typeName": { + "id": 5501, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "14882:6:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint40_$", + "typeString": "type(uint40)" + } + ], + "id": 5500, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "14877:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14877:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint40", + "typeString": "type(uint40)" + } + }, + "id": 5504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14890:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "14877:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "src": "14869:24:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5512, + "nodeType": "IfStatement", + "src": "14865:103:26", + "trueBody": { + "id": 5511, + "nodeType": "Block", + "src": "14895:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3430", + "id": 5507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14947:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + { + "id": 5508, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5494, + "src": "14951:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5506, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "14916:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14916:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5510, + "nodeType": "RevertStatement", + "src": "14909:48:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5515, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5494, + "src": "14991:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5514, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14984:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint40_$", + "typeString": "type(uint40)" + }, + "typeName": { + "id": 5513, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "14984:6:26", + "typeDescriptions": {} + } + }, + "id": 5516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14984:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "functionReturnParameters": 5498, + "id": 5517, + "nodeType": "Return", + "src": "14977:20:26" + } + ] + }, + "documentation": { + "id": 5492, + "nodeType": "StructuredDocumentation", + "src": "14510:276:26", + "text": " @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits" + }, + "id": 5519, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint40", + "nameLocation": "14800:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5494, + "mutability": "mutable", + "name": "value", + "nameLocation": "14817:5:26", + "nodeType": "VariableDeclaration", + "scope": 5519, + "src": "14809:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14809:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14808:15:26" + }, + "returnParameters": { + "id": 5498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5497, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5519, + "src": "14847:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "typeName": { + "id": 5496, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "14847:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "visibility": "internal" + } + ], + "src": "14846:8:26" + }, + "scope": 6491, + "src": "14791:213:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5546, + "nodeType": "Block", + "src": "15355:149:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5527, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "15369:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15382:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5529, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15382:6:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + } + ], + "id": 5528, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "15377:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15377:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint32", + "typeString": "type(uint32)" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15390:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "15377:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "15369:24:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5540, + "nodeType": "IfStatement", + "src": "15365:103:26", + "trueBody": { + "id": 5539, + "nodeType": "Block", + "src": "15395:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3332", + "id": 5535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15447:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + { + "id": 5536, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "15451:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5534, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "15416:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15416:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5538, + "nodeType": "RevertStatement", + "src": "15409:48:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5543, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "15491:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15484:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5541, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15484:6:26", + "typeDescriptions": {} + } + }, + "id": 5544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15484:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 5526, + "id": 5545, + "nodeType": "Return", + "src": "15477:20:26" + } + ] + }, + "documentation": { + "id": 5520, + "nodeType": "StructuredDocumentation", + "src": "15010:276:26", + "text": " @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits" + }, + "id": 5547, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint32", + "nameLocation": "15300:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5522, + "mutability": "mutable", + "name": "value", + "nameLocation": "15317:5:26", + "nodeType": "VariableDeclaration", + "scope": 5547, + "src": "15309:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15309:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15308:15:26" + }, + "returnParameters": { + "id": 5526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5525, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5547, + "src": "15347:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5524, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15347:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "15346:8:26" + }, + "scope": 6491, + "src": "15291:213:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5574, + "nodeType": "Block", + "src": "15855:149:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5555, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5550, + "src": "15869:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15882:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint24_$", + "typeString": "type(uint24)" + }, + "typeName": { + "id": 5557, + "name": "uint24", + "nodeType": "ElementaryTypeName", + "src": "15882:6:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint24_$", + "typeString": "type(uint24)" + } + ], + "id": 5556, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "15877:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15877:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint24", + "typeString": "type(uint24)" + } + }, + "id": 5560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15890:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "15877:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + } + }, + "src": "15869:24:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5568, + "nodeType": "IfStatement", + "src": "15865:103:26", + "trueBody": { + "id": 5567, + "nodeType": "Block", + "src": "15895:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3234", + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15947:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + { + "id": 5564, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5550, + "src": "15951:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5562, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "15916:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15916:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5566, + "nodeType": "RevertStatement", + "src": "15909:48:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5571, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5550, + "src": "15991:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15984:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint24_$", + "typeString": "type(uint24)" + }, + "typeName": { + "id": 5569, + "name": "uint24", + "nodeType": "ElementaryTypeName", + "src": "15984:6:26", + "typeDescriptions": {} + } + }, + "id": 5572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15984:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + } + }, + "functionReturnParameters": 5554, + "id": 5573, + "nodeType": "Return", + "src": "15977:20:26" + } + ] + }, + "documentation": { + "id": 5548, + "nodeType": "StructuredDocumentation", + "src": "15510:276:26", + "text": " @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits" + }, + "id": 5575, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint24", + "nameLocation": "15800:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5550, + "mutability": "mutable", + "name": "value", + "nameLocation": "15817:5:26", + "nodeType": "VariableDeclaration", + "scope": 5575, + "src": "15809:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15809:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15808:15:26" + }, + "returnParameters": { + "id": 5554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5553, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5575, + "src": "15847:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "typeName": { + "id": 5552, + "name": "uint24", + "nodeType": "ElementaryTypeName", + "src": "15847:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + } + }, + "visibility": "internal" + } + ], + "src": "15846:8:26" + }, + "scope": 6491, + "src": "15791:213:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5602, + "nodeType": "Block", + "src": "16355:149:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5583, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5578, + "src": "16369:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16382:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 5585, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "16382:6:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + } + ], + "id": 5584, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "16377:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16377:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint16", + "typeString": "type(uint16)" + } + }, + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16390:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "16377:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "16369:24:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5596, + "nodeType": "IfStatement", + "src": "16365:103:26", + "trueBody": { + "id": 5595, + "nodeType": "Block", + "src": "16395:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3136", + "id": 5591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16447:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + { + "id": 5592, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5578, + "src": "16451:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5590, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "16416:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16416:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5594, + "nodeType": "RevertStatement", + "src": "16409:48:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5599, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5578, + "src": "16491:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16484:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 5597, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "16484:6:26", + "typeDescriptions": {} + } + }, + "id": 5600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16484:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 5582, + "id": 5601, + "nodeType": "Return", + "src": "16477:20:26" + } + ] + }, + "documentation": { + "id": 5576, + "nodeType": "StructuredDocumentation", + "src": "16010:276:26", + "text": " @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits" + }, + "id": 5603, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint16", + "nameLocation": "16300:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "value", + "nameLocation": "16317:5:26", + "nodeType": "VariableDeclaration", + "scope": 5603, + "src": "16309:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16309:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16308:15:26" + }, + "returnParameters": { + "id": 5582, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5581, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5603, + "src": "16347:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 5580, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "16347:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "16346:8:26" + }, + "scope": 6491, + "src": "16291:213:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5630, + "nodeType": "Block", + "src": "16849:146:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5611, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5606, + "src": "16863:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16876:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 5613, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16876:5:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + } + ], + "id": 5612, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "16871:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16871:11:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint8", + "typeString": "type(uint8)" + } + }, + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16883:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "16871:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "16863:23:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5624, + "nodeType": "IfStatement", + "src": "16859:101:26", + "trueBody": { + "id": 5623, + "nodeType": "Block", + "src": "16888:72:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "38", + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16940:1:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + { + "id": 5620, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5606, + "src": "16943:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5618, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4746, + "src": "16909:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 5621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16909:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5622, + "nodeType": "RevertStatement", + "src": "16902:47:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5627, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5606, + "src": "16982:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16976:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 5625, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16976:5:26", + "typeDescriptions": {} + } + }, + "id": 5628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16976:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 5610, + "id": 5629, + "nodeType": "Return", + "src": "16969:19:26" + } + ] + }, + "documentation": { + "id": 5604, + "nodeType": "StructuredDocumentation", + "src": "16510:272:26", + "text": " @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits" + }, + "id": 5631, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint8", + "nameLocation": "16796:7:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5607, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5606, + "mutability": "mutable", + "name": "value", + "nameLocation": "16812:5:26", + "nodeType": "VariableDeclaration", + "scope": 5631, + "src": "16804:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5605, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16804:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16803:15:26" + }, + "returnParameters": { + "id": 5610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5609, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5631, + "src": "16842:5:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5608, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16842:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "16841:7:26" + }, + "scope": 6491, + "src": "16787:208:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5653, + "nodeType": "Block", + "src": "17231:128:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5639, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5634, + "src": "17245:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17253:1:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17245:9:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5647, + "nodeType": "IfStatement", + "src": "17241:81:26", + "trueBody": { + "id": 5646, + "nodeType": "Block", + "src": "17256:66:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 5643, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5634, + "src": "17305:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5642, + "name": "SafeCastOverflowedIntToUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4751, + "src": "17277:27:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_int256_$returns$_t_error_$", + "typeString": "function (int256) pure returns (error)" + } + }, + "id": 5644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17277:34:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5645, + "nodeType": "RevertStatement", + "src": "17270:41:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5634, + "src": "17346:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17338:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17338:7:26", + "typeDescriptions": {} + } + }, + "id": 5651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17338:14:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5638, + "id": 5652, + "nodeType": "Return", + "src": "17331:21:26" + } + ] + }, + "documentation": { + "id": 5632, + "nodeType": "StructuredDocumentation", + "src": "17001:160:26", + "text": " @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0." + }, + "id": 5654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint256", + "nameLocation": "17175:9:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5634, + "mutability": "mutable", + "name": "value", + "nameLocation": "17192:5:26", + "nodeType": "VariableDeclaration", + "scope": 5654, + "src": "17185:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5633, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "17185:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "17184:14:26" + }, + "returnParameters": { + "id": 5638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5637, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5654, + "src": "17222:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17222:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17221:9:26" + }, + "scope": 6491, + "src": "17166:193:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5679, + "nodeType": "Block", + "src": "17756:150:26", + "statements": [ + { + "expression": { + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5662, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5660, + "src": "17766:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5665, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17786:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17779:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int248_$", + "typeString": "type(int248)" + }, + "typeName": { + "id": 5663, + "name": "int248", + "nodeType": "ElementaryTypeName", + "src": "17779:6:26", + "typeDescriptions": {} + } + }, + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17779:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "src": "17766:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "id": 5668, + "nodeType": "ExpressionStatement", + "src": "17766:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5669, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5660, + "src": "17806:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5670, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17820:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "17806:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5678, + "nodeType": "IfStatement", + "src": "17802:98:26", + "trueBody": { + "id": 5677, + "nodeType": "Block", + "src": "17827:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323438", + "id": 5673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17878:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + "value": "248" + }, + { + "id": 5674, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17883:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5672, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "17848:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17848:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5676, + "nodeType": "RevertStatement", + "src": "17841:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5655, + "nodeType": "StructuredDocumentation", + "src": "17365:312:26", + "text": " @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits" + }, + "id": 5680, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt248", + "nameLocation": "17691:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "mutability": "mutable", + "name": "value", + "nameLocation": "17707:5:26", + "nodeType": "VariableDeclaration", + "scope": 5680, + "src": "17700:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5656, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "17700:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "17699:14:26" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5660, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "17744:10:26", + "nodeType": "VariableDeclaration", + "scope": 5680, + "src": "17737:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + }, + "typeName": { + "id": 5659, + "name": "int248", + "nodeType": "ElementaryTypeName", + "src": "17737:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "visibility": "internal" + } + ], + "src": "17736:19:26" + }, + "scope": 6491, + "src": "17682:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5705, + "nodeType": "Block", + "src": "18303:150:26", + "statements": [ + { + "expression": { + "id": 5693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5688, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "18313:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5691, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18333:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18326:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int240_$", + "typeString": "type(int240)" + }, + "typeName": { + "id": 5689, + "name": "int240", + "nodeType": "ElementaryTypeName", + "src": "18326:6:26", + "typeDescriptions": {} + } + }, + "id": 5692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18326:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "src": "18313:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "id": 5694, + "nodeType": "ExpressionStatement", + "src": "18313:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5695, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "18353:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5696, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18367:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "18353:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5704, + "nodeType": "IfStatement", + "src": "18349:98:26", + "trueBody": { + "id": 5703, + "nodeType": "Block", + "src": "18374:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323430", + "id": 5699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18425:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + "value": "240" + }, + { + "id": 5700, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18430:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5698, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "18395:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18395:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5702, + "nodeType": "RevertStatement", + "src": "18388:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5681, + "nodeType": "StructuredDocumentation", + "src": "17912:312:26", + "text": " @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits" + }, + "id": 5706, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt240", + "nameLocation": "18238:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5683, + "mutability": "mutable", + "name": "value", + "nameLocation": "18254:5:26", + "nodeType": "VariableDeclaration", + "scope": 5706, + "src": "18247:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5682, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "18247:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "18246:14:26" + }, + "returnParameters": { + "id": 5687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "18291:10:26", + "nodeType": "VariableDeclaration", + "scope": 5706, + "src": "18284:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + }, + "typeName": { + "id": 5685, + "name": "int240", + "nodeType": "ElementaryTypeName", + "src": "18284:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "visibility": "internal" + } + ], + "src": "18283:19:26" + }, + "scope": 6491, + "src": "18229:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5731, + "nodeType": "Block", + "src": "18850:150:26", + "statements": [ + { + "expression": { + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5714, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5712, + "src": "18860:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5717, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "18880:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18873:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int232_$", + "typeString": "type(int232)" + }, + "typeName": { + "id": 5715, + "name": "int232", + "nodeType": "ElementaryTypeName", + "src": "18873:6:26", + "typeDescriptions": {} + } + }, + "id": 5718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18873:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "src": "18860:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "id": 5720, + "nodeType": "ExpressionStatement", + "src": "18860:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5721, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5712, + "src": "18900:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5722, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "18914:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "18900:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5730, + "nodeType": "IfStatement", + "src": "18896:98:26", + "trueBody": { + "id": 5729, + "nodeType": "Block", + "src": "18921:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323332", + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18972:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + "value": "232" + }, + { + "id": 5726, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "18977:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5724, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "18942:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18942:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5728, + "nodeType": "RevertStatement", + "src": "18935:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5707, + "nodeType": "StructuredDocumentation", + "src": "18459:312:26", + "text": " @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits" + }, + "id": 5732, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt232", + "nameLocation": "18785:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "value", + "nameLocation": "18801:5:26", + "nodeType": "VariableDeclaration", + "scope": 5732, + "src": "18794:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5708, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "18794:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "18793:14:26" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5712, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "18838:10:26", + "nodeType": "VariableDeclaration", + "scope": 5732, + "src": "18831:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + }, + "typeName": { + "id": 5711, + "name": "int232", + "nodeType": "ElementaryTypeName", + "src": "18831:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "visibility": "internal" + } + ], + "src": "18830:19:26" + }, + "scope": 6491, + "src": "18776:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5757, + "nodeType": "Block", + "src": "19397:150:26", + "statements": [ + { + "expression": { + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5740, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5738, + "src": "19407:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5743, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5735, + "src": "19427:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19420:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int224_$", + "typeString": "type(int224)" + }, + "typeName": { + "id": 5741, + "name": "int224", + "nodeType": "ElementaryTypeName", + "src": "19420:6:26", + "typeDescriptions": {} + } + }, + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19420:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "src": "19407:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "19407:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5747, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5738, + "src": "19447:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5748, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5735, + "src": "19461:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "19447:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5756, + "nodeType": "IfStatement", + "src": "19443:98:26", + "trueBody": { + "id": 5755, + "nodeType": "Block", + "src": "19468:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323234", + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19519:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + "value": "224" + }, + { + "id": 5752, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5735, + "src": "19524:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5750, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "19489:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19489:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5754, + "nodeType": "RevertStatement", + "src": "19482:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5733, + "nodeType": "StructuredDocumentation", + "src": "19006:312:26", + "text": " @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits" + }, + "id": 5758, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt224", + "nameLocation": "19332:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5735, + "mutability": "mutable", + "name": "value", + "nameLocation": "19348:5:26", + "nodeType": "VariableDeclaration", + "scope": 5758, + "src": "19341:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5734, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "19341:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "19340:14:26" + }, + "returnParameters": { + "id": 5739, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5738, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "19385:10:26", + "nodeType": "VariableDeclaration", + "scope": 5758, + "src": "19378:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + }, + "typeName": { + "id": 5737, + "name": "int224", + "nodeType": "ElementaryTypeName", + "src": "19378:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "visibility": "internal" + } + ], + "src": "19377:19:26" + }, + "scope": 6491, + "src": "19323:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5783, + "nodeType": "Block", + "src": "19944:150:26", + "statements": [ + { + "expression": { + "id": 5771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5766, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5764, + "src": "19954:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5769, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5761, + "src": "19974:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19967:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int216_$", + "typeString": "type(int216)" + }, + "typeName": { + "id": 5767, + "name": "int216", + "nodeType": "ElementaryTypeName", + "src": "19967:6:26", + "typeDescriptions": {} + } + }, + "id": 5770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19967:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "src": "19954:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "id": 5772, + "nodeType": "ExpressionStatement", + "src": "19954:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5773, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5764, + "src": "19994:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5774, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5761, + "src": "20008:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "19994:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5782, + "nodeType": "IfStatement", + "src": "19990:98:26", + "trueBody": { + "id": 5781, + "nodeType": "Block", + "src": "20015:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323136", + "id": 5777, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20066:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + "value": "216" + }, + { + "id": 5778, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5761, + "src": "20071:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5776, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "20036:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20036:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5780, + "nodeType": "RevertStatement", + "src": "20029:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5759, + "nodeType": "StructuredDocumentation", + "src": "19553:312:26", + "text": " @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits" + }, + "id": 5784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt216", + "nameLocation": "19879:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5761, + "mutability": "mutable", + "name": "value", + "nameLocation": "19895:5:26", + "nodeType": "VariableDeclaration", + "scope": 5784, + "src": "19888:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5760, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "19888:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "19887:14:26" + }, + "returnParameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5764, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "19932:10:26", + "nodeType": "VariableDeclaration", + "scope": 5784, + "src": "19925:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + }, + "typeName": { + "id": 5763, + "name": "int216", + "nodeType": "ElementaryTypeName", + "src": "19925:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "visibility": "internal" + } + ], + "src": "19924:19:26" + }, + "scope": 6491, + "src": "19870:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5809, + "nodeType": "Block", + "src": "20491:150:26", + "statements": [ + { + "expression": { + "id": 5797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5792, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5790, + "src": "20501:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5795, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5787, + "src": "20521:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20514:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int208_$", + "typeString": "type(int208)" + }, + "typeName": { + "id": 5793, + "name": "int208", + "nodeType": "ElementaryTypeName", + "src": "20514:6:26", + "typeDescriptions": {} + } + }, + "id": 5796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20514:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "src": "20501:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "id": 5798, + "nodeType": "ExpressionStatement", + "src": "20501:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5799, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5790, + "src": "20541:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5800, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5787, + "src": "20555:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "20541:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5808, + "nodeType": "IfStatement", + "src": "20537:98:26", + "trueBody": { + "id": 5807, + "nodeType": "Block", + "src": "20562:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323038", + "id": 5803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20613:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + "value": "208" + }, + { + "id": 5804, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5787, + "src": "20618:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5802, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "20583:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20583:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5806, + "nodeType": "RevertStatement", + "src": "20576:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5785, + "nodeType": "StructuredDocumentation", + "src": "20100:312:26", + "text": " @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits" + }, + "id": 5810, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt208", + "nameLocation": "20426:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5787, + "mutability": "mutable", + "name": "value", + "nameLocation": "20442:5:26", + "nodeType": "VariableDeclaration", + "scope": 5810, + "src": "20435:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5786, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "20435:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "20434:14:26" + }, + "returnParameters": { + "id": 5791, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5790, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "20479:10:26", + "nodeType": "VariableDeclaration", + "scope": 5810, + "src": "20472:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + }, + "typeName": { + "id": 5789, + "name": "int208", + "nodeType": "ElementaryTypeName", + "src": "20472:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "visibility": "internal" + } + ], + "src": "20471:19:26" + }, + "scope": 6491, + "src": "20417:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5835, + "nodeType": "Block", + "src": "21038:150:26", + "statements": [ + { + "expression": { + "id": 5823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5818, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5816, + "src": "21048:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5821, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5813, + "src": "21068:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21061:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int200_$", + "typeString": "type(int200)" + }, + "typeName": { + "id": 5819, + "name": "int200", + "nodeType": "ElementaryTypeName", + "src": "21061:6:26", + "typeDescriptions": {} + } + }, + "id": 5822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21061:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "src": "21048:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "id": 5824, + "nodeType": "ExpressionStatement", + "src": "21048:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5825, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5816, + "src": "21088:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5826, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5813, + "src": "21102:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "21088:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5834, + "nodeType": "IfStatement", + "src": "21084:98:26", + "trueBody": { + "id": 5833, + "nodeType": "Block", + "src": "21109:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323030", + "id": 5829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21160:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + "value": "200" + }, + { + "id": 5830, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5813, + "src": "21165:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5828, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "21130:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21130:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5832, + "nodeType": "RevertStatement", + "src": "21123:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5811, + "nodeType": "StructuredDocumentation", + "src": "20647:312:26", + "text": " @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits" + }, + "id": 5836, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt200", + "nameLocation": "20973:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5814, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5813, + "mutability": "mutable", + "name": "value", + "nameLocation": "20989:5:26", + "nodeType": "VariableDeclaration", + "scope": 5836, + "src": "20982:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5812, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "20982:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "20981:14:26" + }, + "returnParameters": { + "id": 5817, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5816, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "21026:10:26", + "nodeType": "VariableDeclaration", + "scope": 5836, + "src": "21019:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + }, + "typeName": { + "id": 5815, + "name": "int200", + "nodeType": "ElementaryTypeName", + "src": "21019:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "visibility": "internal" + } + ], + "src": "21018:19:26" + }, + "scope": 6491, + "src": "20964:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5861, + "nodeType": "Block", + "src": "21585:150:26", + "statements": [ + { + "expression": { + "id": 5849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5844, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5842, + "src": "21595:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5847, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5839, + "src": "21615:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21608:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int192_$", + "typeString": "type(int192)" + }, + "typeName": { + "id": 5845, + "name": "int192", + "nodeType": "ElementaryTypeName", + "src": "21608:6:26", + "typeDescriptions": {} + } + }, + "id": 5848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21608:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "src": "21595:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "id": 5850, + "nodeType": "ExpressionStatement", + "src": "21595:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5851, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5842, + "src": "21635:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5852, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5839, + "src": "21649:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "21635:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5860, + "nodeType": "IfStatement", + "src": "21631:98:26", + "trueBody": { + "id": 5859, + "nodeType": "Block", + "src": "21656:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313932", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21707:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + "value": "192" + }, + { + "id": 5856, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5839, + "src": "21712:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5854, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "21677:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21677:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5858, + "nodeType": "RevertStatement", + "src": "21670:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5837, + "nodeType": "StructuredDocumentation", + "src": "21194:312:26", + "text": " @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits" + }, + "id": 5862, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt192", + "nameLocation": "21520:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5839, + "mutability": "mutable", + "name": "value", + "nameLocation": "21536:5:26", + "nodeType": "VariableDeclaration", + "scope": 5862, + "src": "21529:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5838, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "21529:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "21528:14:26" + }, + "returnParameters": { + "id": 5843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5842, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "21573:10:26", + "nodeType": "VariableDeclaration", + "scope": 5862, + "src": "21566:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + }, + "typeName": { + "id": 5841, + "name": "int192", + "nodeType": "ElementaryTypeName", + "src": "21566:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "visibility": "internal" + } + ], + "src": "21565:19:26" + }, + "scope": 6491, + "src": "21511:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5887, + "nodeType": "Block", + "src": "22132:150:26", + "statements": [ + { + "expression": { + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5870, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5868, + "src": "22142:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5873, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5865, + "src": "22162:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22155:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int184_$", + "typeString": "type(int184)" + }, + "typeName": { + "id": 5871, + "name": "int184", + "nodeType": "ElementaryTypeName", + "src": "22155:6:26", + "typeDescriptions": {} + } + }, + "id": 5874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22155:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "src": "22142:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "id": 5876, + "nodeType": "ExpressionStatement", + "src": "22142:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5877, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5868, + "src": "22182:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5878, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5865, + "src": "22196:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "22182:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5886, + "nodeType": "IfStatement", + "src": "22178:98:26", + "trueBody": { + "id": 5885, + "nodeType": "Block", + "src": "22203:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313834", + "id": 5881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22254:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + "value": "184" + }, + { + "id": 5882, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5865, + "src": "22259:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5880, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "22224:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22224:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5884, + "nodeType": "RevertStatement", + "src": "22217:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5863, + "nodeType": "StructuredDocumentation", + "src": "21741:312:26", + "text": " @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits" + }, + "id": 5888, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt184", + "nameLocation": "22067:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5865, + "mutability": "mutable", + "name": "value", + "nameLocation": "22083:5:26", + "nodeType": "VariableDeclaration", + "scope": 5888, + "src": "22076:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5864, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "22076:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "22075:14:26" + }, + "returnParameters": { + "id": 5869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5868, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "22120:10:26", + "nodeType": "VariableDeclaration", + "scope": 5888, + "src": "22113:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + }, + "typeName": { + "id": 5867, + "name": "int184", + "nodeType": "ElementaryTypeName", + "src": "22113:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "visibility": "internal" + } + ], + "src": "22112:19:26" + }, + "scope": 6491, + "src": "22058:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5913, + "nodeType": "Block", + "src": "22679:150:26", + "statements": [ + { + "expression": { + "id": 5901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5896, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5894, + "src": "22689:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5899, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5891, + "src": "22709:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22702:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int176_$", + "typeString": "type(int176)" + }, + "typeName": { + "id": 5897, + "name": "int176", + "nodeType": "ElementaryTypeName", + "src": "22702:6:26", + "typeDescriptions": {} + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22702:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "src": "22689:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "id": 5902, + "nodeType": "ExpressionStatement", + "src": "22689:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5903, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5894, + "src": "22729:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5904, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5891, + "src": "22743:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "22729:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5912, + "nodeType": "IfStatement", + "src": "22725:98:26", + "trueBody": { + "id": 5911, + "nodeType": "Block", + "src": "22750:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313736", + "id": 5907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22801:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + "value": "176" + }, + { + "id": 5908, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5891, + "src": "22806:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5906, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "22771:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22771:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5910, + "nodeType": "RevertStatement", + "src": "22764:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5889, + "nodeType": "StructuredDocumentation", + "src": "22288:312:26", + "text": " @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits" + }, + "id": 5914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt176", + "nameLocation": "22614:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5891, + "mutability": "mutable", + "name": "value", + "nameLocation": "22630:5:26", + "nodeType": "VariableDeclaration", + "scope": 5914, + "src": "22623:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5890, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "22623:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "22622:14:26" + }, + "returnParameters": { + "id": 5895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5894, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "22667:10:26", + "nodeType": "VariableDeclaration", + "scope": 5914, + "src": "22660:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + }, + "typeName": { + "id": 5893, + "name": "int176", + "nodeType": "ElementaryTypeName", + "src": "22660:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "visibility": "internal" + } + ], + "src": "22659:19:26" + }, + "scope": 6491, + "src": "22605:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5939, + "nodeType": "Block", + "src": "23226:150:26", + "statements": [ + { + "expression": { + "id": 5927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5922, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5920, + "src": "23236:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5925, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5917, + "src": "23256:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "23249:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int168_$", + "typeString": "type(int168)" + }, + "typeName": { + "id": 5923, + "name": "int168", + "nodeType": "ElementaryTypeName", + "src": "23249:6:26", + "typeDescriptions": {} + } + }, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23249:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "src": "23236:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "id": 5928, + "nodeType": "ExpressionStatement", + "src": "23236:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5929, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5920, + "src": "23276:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5930, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5917, + "src": "23290:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "23276:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5938, + "nodeType": "IfStatement", + "src": "23272:98:26", + "trueBody": { + "id": 5937, + "nodeType": "Block", + "src": "23297:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313638", + "id": 5933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23348:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + "value": "168" + }, + { + "id": 5934, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5917, + "src": "23353:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5932, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "23318:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23318:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5936, + "nodeType": "RevertStatement", + "src": "23311:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5915, + "nodeType": "StructuredDocumentation", + "src": "22835:312:26", + "text": " @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits" + }, + "id": 5940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt168", + "nameLocation": "23161:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5918, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5917, + "mutability": "mutable", + "name": "value", + "nameLocation": "23177:5:26", + "nodeType": "VariableDeclaration", + "scope": 5940, + "src": "23170:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5916, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "23170:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "23169:14:26" + }, + "returnParameters": { + "id": 5921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5920, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "23214:10:26", + "nodeType": "VariableDeclaration", + "scope": 5940, + "src": "23207:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + }, + "typeName": { + "id": 5919, + "name": "int168", + "nodeType": "ElementaryTypeName", + "src": "23207:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "visibility": "internal" + } + ], + "src": "23206:19:26" + }, + "scope": 6491, + "src": "23152:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5965, + "nodeType": "Block", + "src": "23773:150:26", + "statements": [ + { + "expression": { + "id": 5953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5948, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5946, + "src": "23783:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5951, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "23803:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "23796:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int160_$", + "typeString": "type(int160)" + }, + "typeName": { + "id": 5949, + "name": "int160", + "nodeType": "ElementaryTypeName", + "src": "23796:6:26", + "typeDescriptions": {} + } + }, + "id": 5952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23796:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "src": "23783:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "id": 5954, + "nodeType": "ExpressionStatement", + "src": "23783:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5955, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5946, + "src": "23823:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5956, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "23837:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "23823:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5964, + "nodeType": "IfStatement", + "src": "23819:98:26", + "trueBody": { + "id": 5963, + "nodeType": "Block", + "src": "23844:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313630", + "id": 5959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23895:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + }, + { + "id": 5960, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "23900:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5958, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "23865:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23865:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5962, + "nodeType": "RevertStatement", + "src": "23858:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5941, + "nodeType": "StructuredDocumentation", + "src": "23382:312:26", + "text": " @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits" + }, + "id": 5966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt160", + "nameLocation": "23708:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5943, + "mutability": "mutable", + "name": "value", + "nameLocation": "23724:5:26", + "nodeType": "VariableDeclaration", + "scope": 5966, + "src": "23717:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5942, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "23717:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:26" + }, + "returnParameters": { + "id": 5947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5946, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "23761:10:26", + "nodeType": "VariableDeclaration", + "scope": 5966, + "src": "23754:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + }, + "typeName": { + "id": 5945, + "name": "int160", + "nodeType": "ElementaryTypeName", + "src": "23754:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "visibility": "internal" + } + ], + "src": "23753:19:26" + }, + "scope": 6491, + "src": "23699:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5991, + "nodeType": "Block", + "src": "24320:150:26", + "statements": [ + { + "expression": { + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5974, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5972, + "src": "24330:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 5977, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "24350:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24343:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int152_$", + "typeString": "type(int152)" + }, + "typeName": { + "id": 5975, + "name": "int152", + "nodeType": "ElementaryTypeName", + "src": "24343:6:26", + "typeDescriptions": {} + } + }, + "id": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24343:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "src": "24330:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "id": 5980, + "nodeType": "ExpressionStatement", + "src": "24330:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 5983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5981, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5972, + "src": "24370:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 5982, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "24384:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "24370:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5990, + "nodeType": "IfStatement", + "src": "24366:98:26", + "trueBody": { + "id": 5989, + "nodeType": "Block", + "src": "24391:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313532", + "id": 5985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24442:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + "value": "152" + }, + { + "id": 5986, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "24447:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 5984, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "24412:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 5987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24412:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5988, + "nodeType": "RevertStatement", + "src": "24405:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5967, + "nodeType": "StructuredDocumentation", + "src": "23929:312:26", + "text": " @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits" + }, + "id": 5992, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt152", + "nameLocation": "24255:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "value", + "nameLocation": "24271:5:26", + "nodeType": "VariableDeclaration", + "scope": 5992, + "src": "24264:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5968, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "24264:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "24263:14:26" + }, + "returnParameters": { + "id": 5973, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5972, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "24308:10:26", + "nodeType": "VariableDeclaration", + "scope": 5992, + "src": "24301:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + }, + "typeName": { + "id": 5971, + "name": "int152", + "nodeType": "ElementaryTypeName", + "src": "24301:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "visibility": "internal" + } + ], + "src": "24300:19:26" + }, + "scope": 6491, + "src": "24246:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6017, + "nodeType": "Block", + "src": "24867:150:26", + "statements": [ + { + "expression": { + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6000, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5998, + "src": "24877:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6003, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5995, + "src": "24897:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24890:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int144_$", + "typeString": "type(int144)" + }, + "typeName": { + "id": 6001, + "name": "int144", + "nodeType": "ElementaryTypeName", + "src": "24890:6:26", + "typeDescriptions": {} + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24890:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "src": "24877:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "id": 6006, + "nodeType": "ExpressionStatement", + "src": "24877:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6007, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5998, + "src": "24917:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6008, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5995, + "src": "24931:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "24917:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6016, + "nodeType": "IfStatement", + "src": "24913:98:26", + "trueBody": { + "id": 6015, + "nodeType": "Block", + "src": "24938:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313434", + "id": 6011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24989:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + "value": "144" + }, + { + "id": 6012, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5995, + "src": "24994:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6010, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "24959:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24959:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6014, + "nodeType": "RevertStatement", + "src": "24952:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 5993, + "nodeType": "StructuredDocumentation", + "src": "24476:312:26", + "text": " @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits" + }, + "id": 6018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt144", + "nameLocation": "24802:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5996, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5995, + "mutability": "mutable", + "name": "value", + "nameLocation": "24818:5:26", + "nodeType": "VariableDeclaration", + "scope": 6018, + "src": "24811:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 5994, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "24811:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "24810:14:26" + }, + "returnParameters": { + "id": 5999, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5998, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "24855:10:26", + "nodeType": "VariableDeclaration", + "scope": 6018, + "src": "24848:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + }, + "typeName": { + "id": 5997, + "name": "int144", + "nodeType": "ElementaryTypeName", + "src": "24848:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "visibility": "internal" + } + ], + "src": "24847:19:26" + }, + "scope": 6491, + "src": "24793:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6043, + "nodeType": "Block", + "src": "25414:150:26", + "statements": [ + { + "expression": { + "id": 6031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6026, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6024, + "src": "25424:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6029, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6021, + "src": "25444:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25437:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int136_$", + "typeString": "type(int136)" + }, + "typeName": { + "id": 6027, + "name": "int136", + "nodeType": "ElementaryTypeName", + "src": "25437:6:26", + "typeDescriptions": {} + } + }, + "id": 6030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25437:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "src": "25424:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "id": 6032, + "nodeType": "ExpressionStatement", + "src": "25424:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6033, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6024, + "src": "25464:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6034, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6021, + "src": "25478:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "25464:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6042, + "nodeType": "IfStatement", + "src": "25460:98:26", + "trueBody": { + "id": 6041, + "nodeType": "Block", + "src": "25485:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313336", + "id": 6037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25536:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + "value": "136" + }, + { + "id": 6038, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6021, + "src": "25541:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6036, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "25506:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25506:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6040, + "nodeType": "RevertStatement", + "src": "25499:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6019, + "nodeType": "StructuredDocumentation", + "src": "25023:312:26", + "text": " @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits" + }, + "id": 6044, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt136", + "nameLocation": "25349:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6021, + "mutability": "mutable", + "name": "value", + "nameLocation": "25365:5:26", + "nodeType": "VariableDeclaration", + "scope": 6044, + "src": "25358:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6020, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "25358:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "25357:14:26" + }, + "returnParameters": { + "id": 6025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6024, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "25402:10:26", + "nodeType": "VariableDeclaration", + "scope": 6044, + "src": "25395:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + }, + "typeName": { + "id": 6023, + "name": "int136", + "nodeType": "ElementaryTypeName", + "src": "25395:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "visibility": "internal" + } + ], + "src": "25394:19:26" + }, + "scope": 6491, + "src": "25340:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6069, + "nodeType": "Block", + "src": "25961:150:26", + "statements": [ + { + "expression": { + "id": 6057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6052, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6050, + "src": "25971:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6055, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6047, + "src": "25991:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25984:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int128_$", + "typeString": "type(int128)" + }, + "typeName": { + "id": 6053, + "name": "int128", + "nodeType": "ElementaryTypeName", + "src": "25984:6:26", + "typeDescriptions": {} + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25984:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "src": "25971:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "id": 6058, + "nodeType": "ExpressionStatement", + "src": "25971:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6059, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6050, + "src": "26011:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6060, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6047, + "src": "26025:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "26011:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6068, + "nodeType": "IfStatement", + "src": "26007:98:26", + "trueBody": { + "id": 6067, + "nodeType": "Block", + "src": "26032:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313238", + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26083:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + { + "id": 6064, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6047, + "src": "26088:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6062, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "26053:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26053:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6066, + "nodeType": "RevertStatement", + "src": "26046:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6045, + "nodeType": "StructuredDocumentation", + "src": "25570:312:26", + "text": " @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits" + }, + "id": 6070, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt128", + "nameLocation": "25896:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6048, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6047, + "mutability": "mutable", + "name": "value", + "nameLocation": "25912:5:26", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "25905:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6046, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "25905:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "25904:14:26" + }, + "returnParameters": { + "id": 6051, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6050, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "25949:10:26", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "25942:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + }, + "typeName": { + "id": 6049, + "name": "int128", + "nodeType": "ElementaryTypeName", + "src": "25942:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "visibility": "internal" + } + ], + "src": "25941:19:26" + }, + "scope": 6491, + "src": "25887:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6095, + "nodeType": "Block", + "src": "26508:150:26", + "statements": [ + { + "expression": { + "id": 6083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6078, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6076, + "src": "26518:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6081, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6073, + "src": "26538:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "26531:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int120_$", + "typeString": "type(int120)" + }, + "typeName": { + "id": 6079, + "name": "int120", + "nodeType": "ElementaryTypeName", + "src": "26531:6:26", + "typeDescriptions": {} + } + }, + "id": 6082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26531:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "src": "26518:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "id": 6084, + "nodeType": "ExpressionStatement", + "src": "26518:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6085, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6076, + "src": "26558:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6086, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6073, + "src": "26572:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "26558:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6094, + "nodeType": "IfStatement", + "src": "26554:98:26", + "trueBody": { + "id": 6093, + "nodeType": "Block", + "src": "26579:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313230", + "id": 6089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26630:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + "value": "120" + }, + { + "id": 6090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6073, + "src": "26635:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6088, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "26600:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26600:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6092, + "nodeType": "RevertStatement", + "src": "26593:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6071, + "nodeType": "StructuredDocumentation", + "src": "26117:312:26", + "text": " @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits" + }, + "id": 6096, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt120", + "nameLocation": "26443:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6073, + "mutability": "mutable", + "name": "value", + "nameLocation": "26459:5:26", + "nodeType": "VariableDeclaration", + "scope": 6096, + "src": "26452:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6072, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "26452:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "26451:14:26" + }, + "returnParameters": { + "id": 6077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6076, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "26496:10:26", + "nodeType": "VariableDeclaration", + "scope": 6096, + "src": "26489:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + }, + "typeName": { + "id": 6075, + "name": "int120", + "nodeType": "ElementaryTypeName", + "src": "26489:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "visibility": "internal" + } + ], + "src": "26488:19:26" + }, + "scope": 6491, + "src": "26434:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6121, + "nodeType": "Block", + "src": "27055:150:26", + "statements": [ + { + "expression": { + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6104, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6102, + "src": "27065:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6099, + "src": "27085:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27078:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int112_$", + "typeString": "type(int112)" + }, + "typeName": { + "id": 6105, + "name": "int112", + "nodeType": "ElementaryTypeName", + "src": "27078:6:26", + "typeDescriptions": {} + } + }, + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27078:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "src": "27065:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "id": 6110, + "nodeType": "ExpressionStatement", + "src": "27065:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6111, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6102, + "src": "27105:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6112, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6099, + "src": "27119:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "27105:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6120, + "nodeType": "IfStatement", + "src": "27101:98:26", + "trueBody": { + "id": 6119, + "nodeType": "Block", + "src": "27126:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313132", + "id": 6115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27177:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + { + "id": 6116, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6099, + "src": "27182:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6114, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "27147:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27147:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6118, + "nodeType": "RevertStatement", + "src": "27140:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6097, + "nodeType": "StructuredDocumentation", + "src": "26664:312:26", + "text": " @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits" + }, + "id": 6122, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt112", + "nameLocation": "26990:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6099, + "mutability": "mutable", + "name": "value", + "nameLocation": "27006:5:26", + "nodeType": "VariableDeclaration", + "scope": 6122, + "src": "26999:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6098, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "26999:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "26998:14:26" + }, + "returnParameters": { + "id": 6103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6102, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "27043:10:26", + "nodeType": "VariableDeclaration", + "scope": 6122, + "src": "27036:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + }, + "typeName": { + "id": 6101, + "name": "int112", + "nodeType": "ElementaryTypeName", + "src": "27036:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "visibility": "internal" + } + ], + "src": "27035:19:26" + }, + "scope": 6491, + "src": "26981:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6147, + "nodeType": "Block", + "src": "27602:150:26", + "statements": [ + { + "expression": { + "id": 6135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6130, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "27612:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6133, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6125, + "src": "27632:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27625:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int104_$", + "typeString": "type(int104)" + }, + "typeName": { + "id": 6131, + "name": "int104", + "nodeType": "ElementaryTypeName", + "src": "27625:6:26", + "typeDescriptions": {} + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27625:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "src": "27612:26:26", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "id": 6136, + "nodeType": "ExpressionStatement", + "src": "27612:26:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6137, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "27652:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6138, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6125, + "src": "27666:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "27652:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6146, + "nodeType": "IfStatement", + "src": "27648:98:26", + "trueBody": { + "id": 6145, + "nodeType": "Block", + "src": "27673:73:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313034", + "id": 6141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27724:3:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + "value": "104" + }, + { + "id": 6142, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6125, + "src": "27729:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6140, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "27694:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27694:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6144, + "nodeType": "RevertStatement", + "src": "27687:48:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6123, + "nodeType": "StructuredDocumentation", + "src": "27211:312:26", + "text": " @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits" + }, + "id": 6148, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt104", + "nameLocation": "27537:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6125, + "mutability": "mutable", + "name": "value", + "nameLocation": "27553:5:26", + "nodeType": "VariableDeclaration", + "scope": 6148, + "src": "27546:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6124, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "27546:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "27545:14:26" + }, + "returnParameters": { + "id": 6129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6128, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "27590:10:26", + "nodeType": "VariableDeclaration", + "scope": 6148, + "src": "27583:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + }, + "typeName": { + "id": 6127, + "name": "int104", + "nodeType": "ElementaryTypeName", + "src": "27583:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "visibility": "internal" + } + ], + "src": "27582:19:26" + }, + "scope": 6491, + "src": "27528:224:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6173, + "nodeType": "Block", + "src": "28142:148:26", + "statements": [ + { + "expression": { + "id": 6161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6156, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6154, + "src": "28152:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6159, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6151, + "src": "28171:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "28165:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int96_$", + "typeString": "type(int96)" + }, + "typeName": { + "id": 6157, + "name": "int96", + "nodeType": "ElementaryTypeName", + "src": "28165:5:26", + "typeDescriptions": {} + } + }, + "id": 6160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28165:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "src": "28152:25:26", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "id": 6162, + "nodeType": "ExpressionStatement", + "src": "28152:25:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6163, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6154, + "src": "28191:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6164, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6151, + "src": "28205:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "28191:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6172, + "nodeType": "IfStatement", + "src": "28187:97:26", + "trueBody": { + "id": 6171, + "nodeType": "Block", + "src": "28212:72:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3936", + "id": 6167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28263:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + { + "id": 6168, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6151, + "src": "28267:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6166, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "28233:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28233:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6170, + "nodeType": "RevertStatement", + "src": "28226:47:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6149, + "nodeType": "StructuredDocumentation", + "src": "27758:307:26", + "text": " @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits" + }, + "id": 6174, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt96", + "nameLocation": "28079:7:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6151, + "mutability": "mutable", + "name": "value", + "nameLocation": "28094:5:26", + "nodeType": "VariableDeclaration", + "scope": 6174, + "src": "28087:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6150, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "28087:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "28086:14:26" + }, + "returnParameters": { + "id": 6155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6154, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "28130:10:26", + "nodeType": "VariableDeclaration", + "scope": 6174, + "src": "28124:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + }, + "typeName": { + "id": 6153, + "name": "int96", + "nodeType": "ElementaryTypeName", + "src": "28124:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "visibility": "internal" + } + ], + "src": "28123:18:26" + }, + "scope": 6491, + "src": "28070:220:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6199, + "nodeType": "Block", + "src": "28680:148:26", + "statements": [ + { + "expression": { + "id": 6187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6182, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6180, + "src": "28690:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6185, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6177, + "src": "28709:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "28703:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int88_$", + "typeString": "type(int88)" + }, + "typeName": { + "id": 6183, + "name": "int88", + "nodeType": "ElementaryTypeName", + "src": "28703:5:26", + "typeDescriptions": {} + } + }, + "id": 6186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28703:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "src": "28690:25:26", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "id": 6188, + "nodeType": "ExpressionStatement", + "src": "28690:25:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6189, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6180, + "src": "28729:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6190, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6177, + "src": "28743:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "28729:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6198, + "nodeType": "IfStatement", + "src": "28725:97:26", + "trueBody": { + "id": 6197, + "nodeType": "Block", + "src": "28750:72:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3838", + "id": 6193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28801:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + "value": "88" + }, + { + "id": 6194, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6177, + "src": "28805:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6192, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "28771:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28771:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6196, + "nodeType": "RevertStatement", + "src": "28764:47:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6175, + "nodeType": "StructuredDocumentation", + "src": "28296:307:26", + "text": " @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits" + }, + "id": 6200, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt88", + "nameLocation": "28617:7:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6177, + "mutability": "mutable", + "name": "value", + "nameLocation": "28632:5:26", + "nodeType": "VariableDeclaration", + "scope": 6200, + "src": "28625:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6176, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "28625:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "28624:14:26" + }, + "returnParameters": { + "id": 6181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6180, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "28668:10:26", + "nodeType": "VariableDeclaration", + "scope": 6200, + "src": "28662:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + }, + "typeName": { + "id": 6179, + "name": "int88", + "nodeType": "ElementaryTypeName", + "src": "28662:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "visibility": "internal" + } + ], + "src": "28661:18:26" + }, + "scope": 6491, + "src": "28608:220:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6225, + "nodeType": "Block", + "src": "29218:148:26", + "statements": [ + { + "expression": { + "id": 6213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6208, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6206, + "src": "29228:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6211, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "29247:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "29241:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int80_$", + "typeString": "type(int80)" + }, + "typeName": { + "id": 6209, + "name": "int80", + "nodeType": "ElementaryTypeName", + "src": "29241:5:26", + "typeDescriptions": {} + } + }, + "id": 6212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29241:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "src": "29228:25:26", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "id": 6214, + "nodeType": "ExpressionStatement", + "src": "29228:25:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6215, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6206, + "src": "29267:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6216, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "29281:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "29267:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6224, + "nodeType": "IfStatement", + "src": "29263:97:26", + "trueBody": { + "id": 6223, + "nodeType": "Block", + "src": "29288:72:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3830", + "id": 6219, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29339:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + "value": "80" + }, + { + "id": 6220, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "29343:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6218, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "29309:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29309:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6222, + "nodeType": "RevertStatement", + "src": "29302:47:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6201, + "nodeType": "StructuredDocumentation", + "src": "28834:307:26", + "text": " @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits" + }, + "id": 6226, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt80", + "nameLocation": "29155:7:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6204, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "value", + "nameLocation": "29170:5:26", + "nodeType": "VariableDeclaration", + "scope": 6226, + "src": "29163:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6202, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "29163:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "29162:14:26" + }, + "returnParameters": { + "id": 6207, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6206, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "29206:10:26", + "nodeType": "VariableDeclaration", + "scope": 6226, + "src": "29200:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + }, + "typeName": { + "id": 6205, + "name": "int80", + "nodeType": "ElementaryTypeName", + "src": "29200:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "visibility": "internal" + } + ], + "src": "29199:18:26" + }, + "scope": 6491, + "src": "29146:220:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6251, + "nodeType": "Block", + "src": "29756:148:26", + "statements": [ + { + "expression": { + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6234, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6232, + "src": "29766:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6237, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6229, + "src": "29785:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "29779:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int72_$", + "typeString": "type(int72)" + }, + "typeName": { + "id": 6235, + "name": "int72", + "nodeType": "ElementaryTypeName", + "src": "29779:5:26", + "typeDescriptions": {} + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29779:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "src": "29766:25:26", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "id": 6240, + "nodeType": "ExpressionStatement", + "src": "29766:25:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6241, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6232, + "src": "29805:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6242, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6229, + "src": "29819:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "29805:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6250, + "nodeType": "IfStatement", + "src": "29801:97:26", + "trueBody": { + "id": 6249, + "nodeType": "Block", + "src": "29826:72:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3732", + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29877:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + "value": "72" + }, + { + "id": 6246, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6229, + "src": "29881:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6244, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "29847:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29847:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6248, + "nodeType": "RevertStatement", + "src": "29840:47:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6227, + "nodeType": "StructuredDocumentation", + "src": "29372:307:26", + "text": " @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits" + }, + "id": 6252, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt72", + "nameLocation": "29693:7:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6229, + "mutability": "mutable", + "name": "value", + "nameLocation": "29708:5:26", + "nodeType": "VariableDeclaration", + "scope": 6252, + "src": "29701:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6228, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "29701:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "29700:14:26" + }, + "returnParameters": { + "id": 6233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6232, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "29744:10:26", + "nodeType": "VariableDeclaration", + "scope": 6252, + "src": "29738:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + }, + "typeName": { + "id": 6231, + "name": "int72", + "nodeType": "ElementaryTypeName", + "src": "29738:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "visibility": "internal" + } + ], + "src": "29737:18:26" + }, + "scope": 6491, + "src": "29684:220:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6277, + "nodeType": "Block", + "src": "30294:148:26", + "statements": [ + { + "expression": { + "id": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6260, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "30304:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6263, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6255, + "src": "30323:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "30317:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int64_$", + "typeString": "type(int64)" + }, + "typeName": { + "id": 6261, + "name": "int64", + "nodeType": "ElementaryTypeName", + "src": "30317:5:26", + "typeDescriptions": {} + } + }, + "id": 6264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30317:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "src": "30304:25:26", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "id": 6266, + "nodeType": "ExpressionStatement", + "src": "30304:25:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6267, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "30343:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6268, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6255, + "src": "30357:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "30343:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6276, + "nodeType": "IfStatement", + "src": "30339:97:26", + "trueBody": { + "id": 6275, + "nodeType": "Block", + "src": "30364:72:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3634", + "id": 6271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30415:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + { + "id": 6272, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6255, + "src": "30419:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6270, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "30385:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30385:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6274, + "nodeType": "RevertStatement", + "src": "30378:47:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6253, + "nodeType": "StructuredDocumentation", + "src": "29910:307:26", + "text": " @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits" + }, + "id": 6278, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt64", + "nameLocation": "30231:7:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6255, + "mutability": "mutable", + "name": "value", + "nameLocation": "30246:5:26", + "nodeType": "VariableDeclaration", + "scope": 6278, + "src": "30239:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6254, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "30239:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "30238:14:26" + }, + "returnParameters": { + "id": 6259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "30282:10:26", + "nodeType": "VariableDeclaration", + "scope": 6278, + "src": "30276:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + }, + "typeName": { + "id": 6257, + "name": "int64", + "nodeType": "ElementaryTypeName", + "src": "30276:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "visibility": "internal" + } + ], + "src": "30275:18:26" + }, + "scope": 6491, + "src": "30222:220:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6303, + "nodeType": "Block", + "src": "30832:148:26", + "statements": [ + { + "expression": { + "id": 6291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6286, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6284, + "src": "30842:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6289, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6281, + "src": "30861:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "30855:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int56_$", + "typeString": "type(int56)" + }, + "typeName": { + "id": 6287, + "name": "int56", + "nodeType": "ElementaryTypeName", + "src": "30855:5:26", + "typeDescriptions": {} + } + }, + "id": 6290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30855:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "src": "30842:25:26", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "id": 6292, + "nodeType": "ExpressionStatement", + "src": "30842:25:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6293, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6284, + "src": "30881:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6294, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6281, + "src": "30895:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "30881:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6302, + "nodeType": "IfStatement", + "src": "30877:97:26", + "trueBody": { + "id": 6301, + "nodeType": "Block", + "src": "30902:72:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3536", + "id": 6297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30953:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + "value": "56" + }, + { + "id": 6298, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6281, + "src": "30957:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6296, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "30923:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30923:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6300, + "nodeType": "RevertStatement", + "src": "30916:47:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6279, + "nodeType": "StructuredDocumentation", + "src": "30448:307:26", + "text": " @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits" + }, + "id": 6304, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt56", + "nameLocation": "30769:7:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6282, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6281, + "mutability": "mutable", + "name": "value", + "nameLocation": "30784:5:26", + "nodeType": "VariableDeclaration", + "scope": 6304, + "src": "30777:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6280, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "30777:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "30776:14:26" + }, + "returnParameters": { + "id": 6285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6284, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "30820:10:26", + "nodeType": "VariableDeclaration", + "scope": 6304, + "src": "30814:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + }, + "typeName": { + "id": 6283, + "name": "int56", + "nodeType": "ElementaryTypeName", + "src": "30814:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "visibility": "internal" + } + ], + "src": "30813:18:26" + }, + "scope": 6491, + "src": "30760:220:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6329, + "nodeType": "Block", + "src": "31370:148:26", + "statements": [ + { + "expression": { + "id": 6317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6312, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6310, + "src": "31380:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6315, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6307, + "src": "31399:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "31393:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int48_$", + "typeString": "type(int48)" + }, + "typeName": { + "id": 6313, + "name": "int48", + "nodeType": "ElementaryTypeName", + "src": "31393:5:26", + "typeDescriptions": {} + } + }, + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31393:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "src": "31380:25:26", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "id": 6318, + "nodeType": "ExpressionStatement", + "src": "31380:25:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6319, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6310, + "src": "31419:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6320, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6307, + "src": "31433:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "31419:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6328, + "nodeType": "IfStatement", + "src": "31415:97:26", + "trueBody": { + "id": 6327, + "nodeType": "Block", + "src": "31440:72:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3438", + "id": 6323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31491:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + { + "id": 6324, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6307, + "src": "31495:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6322, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "31461:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31461:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6326, + "nodeType": "RevertStatement", + "src": "31454:47:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6305, + "nodeType": "StructuredDocumentation", + "src": "30986:307:26", + "text": " @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits" + }, + "id": 6330, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt48", + "nameLocation": "31307:7:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6307, + "mutability": "mutable", + "name": "value", + "nameLocation": "31322:5:26", + "nodeType": "VariableDeclaration", + "scope": 6330, + "src": "31315:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6306, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "31315:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "31314:14:26" + }, + "returnParameters": { + "id": 6311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6310, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "31358:10:26", + "nodeType": "VariableDeclaration", + "scope": 6330, + "src": "31352:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + }, + "typeName": { + "id": 6309, + "name": "int48", + "nodeType": "ElementaryTypeName", + "src": "31352:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "visibility": "internal" + } + ], + "src": "31351:18:26" + }, + "scope": 6491, + "src": "31298:220:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6355, + "nodeType": "Block", + "src": "31908:148:26", + "statements": [ + { + "expression": { + "id": 6343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6338, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6336, + "src": "31918:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6341, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6333, + "src": "31937:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "31931:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int40_$", + "typeString": "type(int40)" + }, + "typeName": { + "id": 6339, + "name": "int40", + "nodeType": "ElementaryTypeName", + "src": "31931:5:26", + "typeDescriptions": {} + } + }, + "id": 6342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31931:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "src": "31918:25:26", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "id": 6344, + "nodeType": "ExpressionStatement", + "src": "31918:25:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6345, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6336, + "src": "31957:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6346, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6333, + "src": "31971:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "31957:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6354, + "nodeType": "IfStatement", + "src": "31953:97:26", + "trueBody": { + "id": 6353, + "nodeType": "Block", + "src": "31978:72:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3430", + "id": 6349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32029:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + { + "id": 6350, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6333, + "src": "32033:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6348, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "31999:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31999:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6352, + "nodeType": "RevertStatement", + "src": "31992:47:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6331, + "nodeType": "StructuredDocumentation", + "src": "31524:307:26", + "text": " @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits" + }, + "id": 6356, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt40", + "nameLocation": "31845:7:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6333, + "mutability": "mutable", + "name": "value", + "nameLocation": "31860:5:26", + "nodeType": "VariableDeclaration", + "scope": 6356, + "src": "31853:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6332, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "31853:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "31852:14:26" + }, + "returnParameters": { + "id": 6337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6336, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "31896:10:26", + "nodeType": "VariableDeclaration", + "scope": 6356, + "src": "31890:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + }, + "typeName": { + "id": 6335, + "name": "int40", + "nodeType": "ElementaryTypeName", + "src": "31890:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "visibility": "internal" + } + ], + "src": "31889:18:26" + }, + "scope": 6491, + "src": "31836:220:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6381, + "nodeType": "Block", + "src": "32446:148:26", + "statements": [ + { + "expression": { + "id": 6369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6364, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6362, + "src": "32456:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6367, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6359, + "src": "32475:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32469:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int32_$", + "typeString": "type(int32)" + }, + "typeName": { + "id": 6365, + "name": "int32", + "nodeType": "ElementaryTypeName", + "src": "32469:5:26", + "typeDescriptions": {} + } + }, + "id": 6368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32469:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "src": "32456:25:26", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "id": 6370, + "nodeType": "ExpressionStatement", + "src": "32456:25:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6371, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6362, + "src": "32495:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6359, + "src": "32509:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "32495:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6380, + "nodeType": "IfStatement", + "src": "32491:97:26", + "trueBody": { + "id": 6379, + "nodeType": "Block", + "src": "32516:72:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3332", + "id": 6375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32567:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + { + "id": 6376, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6359, + "src": "32571:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6374, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "32537:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32537:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6378, + "nodeType": "RevertStatement", + "src": "32530:47:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6357, + "nodeType": "StructuredDocumentation", + "src": "32062:307:26", + "text": " @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits" + }, + "id": 6382, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt32", + "nameLocation": "32383:7:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6359, + "mutability": "mutable", + "name": "value", + "nameLocation": "32398:5:26", + "nodeType": "VariableDeclaration", + "scope": 6382, + "src": "32391:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6358, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "32391:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "32390:14:26" + }, + "returnParameters": { + "id": 6363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6362, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "32434:10:26", + "nodeType": "VariableDeclaration", + "scope": 6382, + "src": "32428:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + }, + "typeName": { + "id": 6361, + "name": "int32", + "nodeType": "ElementaryTypeName", + "src": "32428:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "visibility": "internal" + } + ], + "src": "32427:18:26" + }, + "scope": 6491, + "src": "32374:220:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6407, + "nodeType": "Block", + "src": "32984:148:26", + "statements": [ + { + "expression": { + "id": 6395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6390, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6388, + "src": "32994:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6393, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6385, + "src": "33013:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33007:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int24_$", + "typeString": "type(int24)" + }, + "typeName": { + "id": 6391, + "name": "int24", + "nodeType": "ElementaryTypeName", + "src": "33007:5:26", + "typeDescriptions": {} + } + }, + "id": 6394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33007:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "src": "32994:25:26", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "id": 6396, + "nodeType": "ExpressionStatement", + "src": "32994:25:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6397, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6388, + "src": "33033:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6398, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6385, + "src": "33047:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "33033:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6406, + "nodeType": "IfStatement", + "src": "33029:97:26", + "trueBody": { + "id": 6405, + "nodeType": "Block", + "src": "33054:72:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3234", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33105:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + { + "id": 6402, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6385, + "src": "33109:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6400, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "33075:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33075:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6404, + "nodeType": "RevertStatement", + "src": "33068:47:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6383, + "nodeType": "StructuredDocumentation", + "src": "32600:307:26", + "text": " @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits" + }, + "id": 6408, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt24", + "nameLocation": "32921:7:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6386, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6385, + "mutability": "mutable", + "name": "value", + "nameLocation": "32936:5:26", + "nodeType": "VariableDeclaration", + "scope": 6408, + "src": "32929:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6384, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "32929:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "32928:14:26" + }, + "returnParameters": { + "id": 6389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6388, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "32972:10:26", + "nodeType": "VariableDeclaration", + "scope": 6408, + "src": "32966:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + }, + "typeName": { + "id": 6387, + "name": "int24", + "nodeType": "ElementaryTypeName", + "src": "32966:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "visibility": "internal" + } + ], + "src": "32965:18:26" + }, + "scope": 6491, + "src": "32912:220:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6433, + "nodeType": "Block", + "src": "33522:148:26", + "statements": [ + { + "expression": { + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6416, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6414, + "src": "33532:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6419, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "33551:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33545:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int16_$", + "typeString": "type(int16)" + }, + "typeName": { + "id": 6417, + "name": "int16", + "nodeType": "ElementaryTypeName", + "src": "33545:5:26", + "typeDescriptions": {} + } + }, + "id": 6420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33545:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "src": "33532:25:26", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "id": 6422, + "nodeType": "ExpressionStatement", + "src": "33532:25:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6423, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6414, + "src": "33571:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6424, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "33585:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "33571:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6432, + "nodeType": "IfStatement", + "src": "33567:97:26", + "trueBody": { + "id": 6431, + "nodeType": "Block", + "src": "33592:72:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3136", + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33643:2:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + { + "id": 6428, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "33647:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6426, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "33613:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33613:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6430, + "nodeType": "RevertStatement", + "src": "33606:47:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6409, + "nodeType": "StructuredDocumentation", + "src": "33138:307:26", + "text": " @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits" + }, + "id": 6434, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt16", + "nameLocation": "33459:7:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6412, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "value", + "nameLocation": "33474:5:26", + "nodeType": "VariableDeclaration", + "scope": 6434, + "src": "33467:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6410, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "33467:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "33466:14:26" + }, + "returnParameters": { + "id": 6415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6414, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "33510:10:26", + "nodeType": "VariableDeclaration", + "scope": 6434, + "src": "33504:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + }, + "typeName": { + "id": 6413, + "name": "int16", + "nodeType": "ElementaryTypeName", + "src": "33504:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "visibility": "internal" + } + ], + "src": "33503:18:26" + }, + "scope": 6491, + "src": "33450:220:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6459, + "nodeType": "Block", + "src": "34053:146:26", + "statements": [ + { + "expression": { + "id": 6447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6442, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6440, + "src": "34063:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6445, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "34081:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34076:4:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int8_$", + "typeString": "type(int8)" + }, + "typeName": { + "id": 6443, + "name": "int8", + "nodeType": "ElementaryTypeName", + "src": "34076:4:26", + "typeDescriptions": {} + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34076:11:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "src": "34063:24:26", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "id": 6448, + "nodeType": "ExpressionStatement", + "src": "34063:24:26" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6449, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6440, + "src": "34101:10:26", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6450, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "34115:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "34101:19:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6458, + "nodeType": "IfStatement", + "src": "34097:96:26", + "trueBody": { + "id": 6457, + "nodeType": "Block", + "src": "34122:71:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "38", + "id": 6453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34173:1:26", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + { + "id": 6454, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "34176:5:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6452, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4758, + "src": "34143:29:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34143:39:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6456, + "nodeType": "RevertStatement", + "src": "34136:46:26" + } + ] + } + } + ] + }, + "documentation": { + "id": 6435, + "nodeType": "StructuredDocumentation", + "src": "33676:302:26", + "text": " @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits" + }, + "id": 6460, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt8", + "nameLocation": "33992:6:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6437, + "mutability": "mutable", + "name": "value", + "nameLocation": "34006:5:26", + "nodeType": "VariableDeclaration", + "scope": 6460, + "src": "33999:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6436, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "33999:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "33998:14:26" + }, + "returnParameters": { + "id": 6441, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6440, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "34041:10:26", + "nodeType": "VariableDeclaration", + "scope": 6460, + "src": "34036:15:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + }, + "typeName": { + "id": 6439, + "name": "int8", + "nodeType": "ElementaryTypeName", + "src": "34036:4:26", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "visibility": "internal" + } + ], + "src": "34035:17:26" + }, + "scope": 6491, + "src": "33983:216:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6489, + "nodeType": "Block", + "src": "34439:250:26", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6468, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6463, + "src": "34552:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34573:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 6472, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34573:6:26", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + } + ], + "id": 6471, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "34568:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34568:12:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_int256", + "typeString": "type(int256)" + } + }, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "34581:3:26", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "34568:16:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34560:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6469, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34560:7:26", + "typeDescriptions": {} + } + }, + "id": 6476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34560:25:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34552:33:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6483, + "nodeType": "IfStatement", + "src": "34548:105:26", + "trueBody": { + "id": 6482, + "nodeType": "Block", + "src": "34587:66:26", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 6479, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6463, + "src": "34636:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6478, + "name": "SafeCastOverflowedUintToInt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4763, + "src": "34608:27:26", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34608:34:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6481, + "nodeType": "RevertStatement", + "src": "34601:41:26" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 6486, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6463, + "src": "34676:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34669:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 6484, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34669:6:26", + "typeDescriptions": {} + } + }, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34669:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 6467, + "id": 6488, + "nodeType": "Return", + "src": "34662:20:26" + } + ] + }, + "documentation": { + "id": 6461, + "nodeType": "StructuredDocumentation", + "src": "34205:165:26", + "text": " @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256." + }, + "id": 6490, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt256", + "nameLocation": "34384:8:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6463, + "mutability": "mutable", + "name": "value", + "nameLocation": "34401:5:26", + "nodeType": "VariableDeclaration", + "scope": 6490, + "src": "34393:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34393:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34392:15:26" + }, + "returnParameters": { + "id": 6467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6466, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6490, + "src": "34431:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6465, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34431:6:26", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "34430:8:26" + }, + "scope": 6491, + "src": "34375:314:26", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6492, + "src": "764:33927:26", + "usedErrors": [ + 4746, + 4751, + 4758, + 4763 + ], + "usedEvents": [] + } + ], + "src": "192:34500:26" + }, + "id": 26 + }, + "contracts/DomainMangager/DomainManager.sol": { + "ast": { + "absolutePath": "contracts/DomainMangager/DomainManager.sol", + "exportedSymbols": { + "DomainManager": [ + 6556 + ], + "ISciRegistry": [ + 7088 + ] + }, + "id": 6557, + "license": "AGPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6493, + "literals": [ + "solidity", + "0.8", + ".28" + ], + "nodeType": "PragmaDirective", + "src": "37:23:27" + }, + { + "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", + "file": "../SciRegistry/ISciRegistry.sol", + "id": 6495, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6557, + "sourceUnit": 7089, + "src": "62:61:27", + "symbolAliases": [ + { + "foreign": { + "id": 6494, + "name": "ISciRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7088, + "src": "70:12:27", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "DomainManager", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 6496, + "nodeType": "StructuredDocumentation", + "src": "125:185:27", + "text": " @title DomainManager\n @dev Contract module that implement access\n control only to owners of a domain in the SCI Registry.\n @custom:security-contact security@sci.domains" + }, + "fullyImplemented": true, + "id": 6556, + "linearizedBaseContracts": [ + 6556 + ], + "name": "DomainManager", + "nameLocation": "329:13:27", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "7b103999", + "id": 6499, + "mutability": "immutable", + "name": "registry", + "nameLocation": "379:8:27", + "nodeType": "VariableDeclaration", + "scope": 6556, + "src": "349:38:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + }, + "typeName": { + "id": 6498, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6497, + "name": "ISciRegistry", + "nameLocations": [ + "349:12:27" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7088, + "src": "349:12:27" + }, + "referencedDeclaration": 7088, + "src": "349:12:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "visibility": "public" + }, + { + "documentation": { + "id": 6500, + "nodeType": "StructuredDocumentation", + "src": "394:85:27", + "text": " @dev Thrown when the `account` is not the owner of the domainhash." + }, + "errorSelector": "2ebb0ef6", + "id": 6506, + "name": "AccountIsNotDomainOwner", + "nameLocation": "490:23:27", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6502, + "mutability": "mutable", + "name": "account", + "nameLocation": "522:7:27", + "nodeType": "VariableDeclaration", + "scope": 6506, + "src": "514:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6501, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "514:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6504, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "539:10:27", + "nodeType": "VariableDeclaration", + "scope": 6506, + "src": "531:18:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6503, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "531:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "513:37:27" + }, + "src": "484:67:27" + }, + { + "body": { + "id": 6519, + "nodeType": "Block", + "src": "862:66:27", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6514, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6509, + "src": "890:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6515, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "899:10:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 6513, + "name": "_checkDomainOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6555, + "src": "872:17:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$returns$__$", + "typeString": "function (address,bytes32) view" + } + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "872:38:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6517, + "nodeType": "ExpressionStatement", + "src": "872:38:27" + }, + { + "id": 6518, + "nodeType": "PlaceholderStatement", + "src": "920:1:27" + } + ] + }, + "documentation": { + "id": 6507, + "nodeType": "StructuredDocumentation", + "src": "557:238:27", + "text": " @dev Modifier that checks if the provided address is the owner of the SCI domain.\n @param domainHash The namehash of the domain.\n Note: Reverts with `AccountIsNotDomainOwner` error if the check fails." + }, + "id": 6520, + "name": "onlyDomainOwner", + "nameLocation": "809:15:27", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 6512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6509, + "mutability": "mutable", + "name": "account", + "nameLocation": "833:7:27", + "nodeType": "VariableDeclaration", + "scope": 6520, + "src": "825:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "825:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6511, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "850:10:27", + "nodeType": "VariableDeclaration", + "scope": 6520, + "src": "842:18:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6510, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "842:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "824:37:27" + }, + "src": "800:128:27", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6532, + "nodeType": "Block", + "src": "1137:61:27", + "statements": [ + { + "expression": { + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6526, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6499, + "src": "1147:8:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6528, + "name": "_sciRegistryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6523, + "src": "1171:19:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6527, + "name": "ISciRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7088, + "src": "1158:12:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISciRegistry_$7088_$", + "typeString": "type(contract ISciRegistry)" + } + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1158:33:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "src": "1147:44:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "id": 6531, + "nodeType": "ExpressionStatement", + "src": "1147:44:27" + } + ] + }, + "documentation": { + "id": 6521, + "nodeType": "StructuredDocumentation", + "src": "934:157:27", + "text": " @dev Initializes the contract with references to the SCI Registry.\n @param _sciRegistryAddress Address of the SCI Registry contract." + }, + "id": 6533, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6524, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6523, + "mutability": "mutable", + "name": "_sciRegistryAddress", + "nameLocation": "1116:19:27", + "nodeType": "VariableDeclaration", + "scope": 6533, + "src": "1108:27:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1108:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1107:29:27" + }, + "returnParameters": { + "id": 6525, + "nodeType": "ParameterList", + "parameters": [], + "src": "1137:0:27" + }, + "scope": 6556, + "src": "1096:102:27", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6554, + "nodeType": "Block", + "src": "1564:141:27", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6543, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6538, + "src": "1599:10:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 6541, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6499, + "src": "1578:8:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1587:11:27", + "memberName": "domainOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7061, + "src": "1578:20:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1578:32:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6545, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6536, + "src": "1614:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1578:43:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6553, + "nodeType": "IfStatement", + "src": "1574:125:27", + "trueBody": { + "id": 6552, + "nodeType": "Block", + "src": "1623:76:27", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 6548, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6536, + "src": "1668:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6549, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6538, + "src": "1677:10:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 6547, + "name": "AccountIsNotDomainOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6506, + "src": "1644:23:27", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$", + "typeString": "function (address,bytes32) pure returns (error)" + } + }, + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1644:44:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6551, + "nodeType": "RevertStatement", + "src": "1637:51:27" + } + ] + } + } + ] + }, + "documentation": { + "id": 6534, + "nodeType": "StructuredDocumentation", + "src": "1204:278:27", + "text": " @dev Reverts with an {AccountIsNotDomainOwner} error if the caller\n is not the owner of the domain.\n @param domainHash The namehash of the domain.\n Note: Overriding this function changes the behavior of the {onlyDomainOwner} modifier." + }, + "id": 6555, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkDomainOwner", + "nameLocation": "1496:17:27", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6536, + "mutability": "mutable", + "name": "account", + "nameLocation": "1522:7:27", + "nodeType": "VariableDeclaration", + "scope": 6555, + "src": "1514:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6535, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1514:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6538, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "1539:10:27", + "nodeType": "VariableDeclaration", + "scope": 6555, + "src": "1531:18:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6537, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1531:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1513:37:27" + }, + "returnParameters": { + "id": 6540, + "nodeType": "ParameterList", + "parameters": [], + "src": "1564:0:27" + }, + "scope": 6556, + "src": "1487:218:27", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "scope": 6557, + "src": "311:1396:27", + "usedErrors": [ + 6506 + ], + "usedEvents": [] + } + ], + "src": "37:1671:27" + }, + "id": 27 + }, + "contracts/Ens/Ens.sol": { + "ast": { + "absolutePath": "contracts/Ens/Ens.sol", + "exportedSymbols": { + "ENSRegistry": [ + 560 + ] + }, + "id": 6561, + "license": "AGPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6558, + "literals": [ + "solidity", + "0.8", + ".28" + ], + "nodeType": "PragmaDirective", + "src": "37:23:28" + }, + { + "absolutePath": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", + "id": 6560, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6561, + "sourceUnit": 561, + "src": "160:89:28", + "symbolAliases": [ + { + "foreign": { + "id": 6559, + "name": "ENSRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 560, + "src": "168:11:28", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + } + ], + "src": "37:213:28" + }, + "id": 28 + }, + "contracts/Proxy/Proxy.sol": { + "ast": { + "absolutePath": "contracts/Proxy/Proxy.sol", + "exportedSymbols": { + "ProxyAdmin": [ + 3001 + ], + "TransparentUpgradeableProxy": [ + 3136 + ] + }, + "id": 6567, + "license": "UNLICENSED", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6562, + "literals": [ + "solidity", + "0.8", + ".28" + ], + "nodeType": "PragmaDirective", + "src": "39:23:29" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol", + "file": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol", + "id": 6564, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6567, + "sourceUnit": 3002, + "src": "238:84:29", + "symbolAliases": [ + { + "foreign": { + "id": 6563, + "name": "ProxyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "246:10:29", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", + "file": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", + "id": 6566, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6567, + "sourceUnit": 3137, + "src": "323:118:29", + "symbolAliases": [ + { + "foreign": { + "id": 6565, + "name": "TransparentUpgradeableProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3136, + "src": "331:27:29", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + } + ], + "src": "39:403:29" + }, + "id": 29 + }, + "contracts/Registrars/EnsRegistrar.sol": { + "ast": { + "absolutePath": "contracts/Registrars/EnsRegistrar.sol", + "exportedSymbols": { + "Context": [ + 3419 + ], + "ENS": [ + 136 + ], + "EnsRegistrar": [ + 6694 + ], + "ISciRegistry": [ + 7088 + ], + "IVerifier": [ + 7453 + ] + }, + "id": 6695, + "license": "AGPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6568, + "literals": [ + "solidity", + "0.8", + ".28" + ], + "nodeType": "PragmaDirective", + "src": "37:23:30" + }, + { + "absolutePath": "@ensdomains/ens-contracts/contracts/registry/ENS.sol", + "file": "@ensdomains/ens-contracts/contracts/registry/ENS.sol", + "id": 6570, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6695, + "sourceUnit": 137, + "src": "62:73:30", + "symbolAliases": [ + { + "foreign": { + "id": 6569, + "name": "ENS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 136, + "src": "70:3:30", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", + "file": "../SciRegistry/ISciRegistry.sol", + "id": 6572, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6695, + "sourceUnit": 7089, + "src": "136:61:30", + "symbolAliases": [ + { + "foreign": { + "id": 6571, + "name": "ISciRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7088, + "src": "144:12:30", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/Verifiers/IVerifier.sol", + "file": "../Verifiers/IVerifier.sol", + "id": 6574, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6695, + "sourceUnit": 7454, + "src": "198:53:30", + "symbolAliases": [ + { + "foreign": { + "id": 6573, + "name": "IVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7453, + "src": "206:9:30", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "@openzeppelin/contracts/utils/Context.sol", + "id": 6576, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6695, + "sourceUnit": 3420, + "src": "252:66:30", + "symbolAliases": [ + { + "foreign": { + "id": 6575, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3419, + "src": "260:7:30", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 6578, + "name": "Context", + "nameLocations": [ + "694:7:30" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3419, + "src": "694:7:30" + }, + "id": 6579, + "nodeType": "InheritanceSpecifier", + "src": "694:7:30" + } + ], + "canonicalName": "EnsRegistrar", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 6577, + "nodeType": "StructuredDocumentation", + "src": "320:348:30", + "text": " @title EnsRegistrar\n @dev This contract allows owners of an ENS (Ethereum Name Service) domain to register it\n in the SCI Registry contract.\n The contract ensures that only the legitimate ENS owner can register a domain\n by verifying the domain ownership through the ENS contract.\n @custom:security-contact security@sci.domains" + }, + "fullyImplemented": true, + "id": 6694, + "linearizedBaseContracts": [ + 6694, + 3419 + ], + "name": "EnsRegistrar", + "nameLocation": "678:12:30", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "7d73b231", + "id": 6582, + "mutability": "immutable", + "name": "ensRegistry", + "nameLocation": "729:11:30", + "nodeType": "VariableDeclaration", + "scope": 6694, + "src": "708:32:30", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$136", + "typeString": "contract ENS" + }, + "typeName": { + "id": 6581, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6580, + "name": "ENS", + "nameLocations": [ + "708:3:30" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 136, + "src": "708:3:30" + }, + "referencedDeclaration": 136, + "src": "708:3:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$136", + "typeString": "contract ENS" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7b103999", + "id": 6585, + "mutability": "immutable", + "name": "registry", + "nameLocation": "776:8:30", + "nodeType": "VariableDeclaration", + "scope": 6694, + "src": "746:38:30", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + }, + "typeName": { + "id": 6584, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6583, + "name": "ISciRegistry", + "nameLocations": [ + "746:12:30" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7088, + "src": "746:12:30" + }, + "referencedDeclaration": 7088, + "src": "746:12:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "visibility": "public" + }, + { + "documentation": { + "id": 6586, + "nodeType": "StructuredDocumentation", + "src": "791:91:30", + "text": " @dev Thrown when the `account` is not the owner of the ENS `domainhash`." + }, + "errorSelector": "36b85210", + "id": 6592, + "name": "AccountIsNotEnsOwner", + "nameLocation": "893:20:30", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6588, + "mutability": "mutable", + "name": "account", + "nameLocation": "922:7:30", + "nodeType": "VariableDeclaration", + "scope": 6592, + "src": "914:15:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "914:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6590, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "939:10:30", + "nodeType": "VariableDeclaration", + "scope": 6592, + "src": "931:18:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6589, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "931:7:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "913:37:30" + }, + "src": "887:64:30" + }, + { + "body": { + "id": 6605, + "nodeType": "Block", + "src": "1319:63:30", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6600, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6595, + "src": "1344:7:30", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6601, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6597, + "src": "1353:10:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 6599, + "name": "_checkEnsOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6693, + "src": "1329:14:30", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$returns$__$", + "typeString": "function (address,bytes32) view" + } + }, + "id": 6602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1329:35:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6603, + "nodeType": "ExpressionStatement", + "src": "1329:35:30" + }, + { + "id": 6604, + "nodeType": "PlaceholderStatement", + "src": "1374:1:30" + } + ] + }, + "documentation": { + "id": 6593, + "nodeType": "StructuredDocumentation", + "src": "957:298:30", + "text": " @dev Modifier that checks if the provided `account` is the owner of the `domainhash`.\n @param account Address expected to be the domain owner.\n @param domainHash Namehash of the domain.\n Note: Reverts with `AccountIsNotEnsOwner` error if the check fails." + }, + "id": 6606, + "name": "onlyEnsOwner", + "nameLocation": "1269:12:30", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 6598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6595, + "mutability": "mutable", + "name": "account", + "nameLocation": "1290:7:30", + "nodeType": "VariableDeclaration", + "scope": 6606, + "src": "1282:15:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6594, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1282:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6597, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "1307:10:30", + "nodeType": "VariableDeclaration", + "scope": 6606, + "src": "1299:18:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6596, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1299:7:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1281:37:30" + }, + "src": "1260:122:30", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6626, + "nodeType": "Block", + "src": "1704:109:30", + "statements": [ + { + "expression": { + "id": 6618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6614, + "name": "ensRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6582, + "src": "1714:11:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$136", + "typeString": "contract ENS" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6616, + "name": "_ensRegistryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6609, + "src": "1732:19:30", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6615, + "name": "ENS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 136, + "src": "1728:3:30", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ENS_$136_$", + "typeString": "type(contract ENS)" + } + }, + "id": 6617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1728:24:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$136", + "typeString": "contract ENS" + } + }, + "src": "1714:38:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$136", + "typeString": "contract ENS" + } + }, + "id": 6619, + "nodeType": "ExpressionStatement", + "src": "1714:38:30" + }, + { + "expression": { + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6620, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6585, + "src": "1762:8:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6622, + "name": "_sciRegistryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "1786:19:30", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6621, + "name": "ISciRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7088, + "src": "1773:12:30", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISciRegistry_$7088_$", + "typeString": "type(contract ISciRegistry)" + } + }, + "id": 6623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1773:33:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "src": "1762:44:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "id": 6625, + "nodeType": "ExpressionStatement", + "src": "1762:44:30" + } + ] + }, + "documentation": { + "id": 6607, + "nodeType": "StructuredDocumentation", + "src": "1388:241:30", + "text": " @dev Initializes the contract with references to the ENS and the SCI Registry.\n @param _ensRegistryAddress Address of the ENS Registry contract.\n @param _sciRegistryAddress Address of the SCI Registry contract." + }, + "id": 6627, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6609, + "mutability": "mutable", + "name": "_ensRegistryAddress", + "nameLocation": "1654:19:30", + "nodeType": "VariableDeclaration", + "scope": 6627, + "src": "1646:27:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1646:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_sciRegistryAddress", + "nameLocation": "1683:19:30", + "nodeType": "VariableDeclaration", + "scope": 6627, + "src": "1675:27:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1675:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1645:58:30" + }, + "returnParameters": { + "id": 6613, + "nodeType": "ParameterList", + "parameters": [], + "src": "1704:0:30" + }, + "scope": 6694, + "src": "1634:179:30", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 6646, + "nodeType": "Block", + "src": "2207:59:30", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6642, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6630, + "src": "2241:5:30", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6643, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6632, + "src": "2248:10:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 6639, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6585, + "src": "2217:8:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2226:14:30", + "memberName": "registerDomain", + "nodeType": "MemberAccess", + "referencedDeclaration": 7032, + "src": "2217:23:30", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$", + "typeString": "function (address,bytes32) external" + } + }, + "id": 6644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2217:42:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6645, + "nodeType": "ExpressionStatement", + "src": "2217:42:30" + } + ] + }, + "documentation": { + "id": 6628, + "nodeType": "StructuredDocumentation", + "src": "1819:261:30", + "text": " @dev Registers a domain in the SCI Registry contract.\n @param owner Address of the domain owner.\n @param domainHash Namehash of domain.\n Requirements:\n - The owner must be the ENS owner of the domainHash." + }, + "functionSelector": "a8c00861", + "id": 6647, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 6635, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6630, + "src": "2188:5:30", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6636, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6632, + "src": "2195:10:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 6637, + "kind": "modifierInvocation", + "modifierName": { + "id": 6634, + "name": "onlyEnsOwner", + "nameLocations": [ + "2175:12:30" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6606, + "src": "2175:12:30" + }, + "nodeType": "ModifierInvocation", + "src": "2175:31:30" + } + ], + "name": "registerDomain", + "nameLocation": "2094:14:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6633, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6630, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2126:5:30", + "nodeType": "VariableDeclaration", + "scope": 6647, + "src": "2118:13:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6629, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6632, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "2149:10:30", + "nodeType": "VariableDeclaration", + "scope": 6647, + "src": "2141:18:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6631, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2141:7:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2108:57:30" + }, + "returnParameters": { + "id": 6638, + "nodeType": "ParameterList", + "parameters": [], + "src": "2207:0:30" + }, + "scope": 6694, + "src": "2085:181:30", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6670, + "nodeType": "Block", + "src": "2713:88:30", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6664, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "2759:10:30", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 6665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2759:12:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6666, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6650, + "src": "2773:10:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6667, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6653, + "src": "2785:8:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + ], + "expression": { + "id": 6661, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6585, + "src": "2723:8:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2732:26:30", + "memberName": "registerDomainWithVerifier", + "nodeType": "MemberAccess", + "referencedDeclaration": 7043, + "src": "2723:35:30", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$7453_$returns$__$", + "typeString": "function (address,bytes32,contract IVerifier) external" + } + }, + "id": 6668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2723:71:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6669, + "nodeType": "ExpressionStatement", + "src": "2723:71:30" + } + ] + }, + "documentation": { + "id": 6648, + "nodeType": "StructuredDocumentation", + "src": "2272:290:30", + "text": " @dev Registers a domain with a verifier in the SCI Registry contract.\n @param domainHash Namehash of the domain.\n @param verifier Address of the verifier contract.\n Requirements:\n - The caller must be the ENS owner of the domainHash." + }, + "functionSelector": "4c7464cf", + "id": 6671, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6656, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "2687:10:30", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2687:12:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6658, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6650, + "src": "2701:10:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 6659, + "kind": "modifierInvocation", + "modifierName": { + "id": 6655, + "name": "onlyEnsOwner", + "nameLocations": [ + "2674:12:30" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6606, + "src": "2674:12:30" + }, + "nodeType": "ModifierInvocation", + "src": "2674:38:30" + } + ], + "name": "registerDomainWithVerifier", + "nameLocation": "2576:26:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6650, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "2620:10:30", + "nodeType": "VariableDeclaration", + "scope": 6671, + "src": "2612:18:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6649, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2612:7:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6653, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "2650:8:30", + "nodeType": "VariableDeclaration", + "scope": 6671, + "src": "2640:18:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 6652, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6651, + "name": "IVerifier", + "nameLocations": [ + "2640:9:30" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "2640:9:30" + }, + "referencedDeclaration": 7453, + "src": "2640:9:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + } + ], + "src": "2602:62:30" + }, + "returnParameters": { + "id": 6660, + "nodeType": "ParameterList", + "parameters": [], + "src": "2713:0:30" + }, + "scope": 6694, + "src": "2567:234:30", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6692, + "nodeType": "Block", + "src": "3213:135:30", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6681, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6676, + "src": "3245:10:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 6679, + "name": "ensRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6582, + "src": "3227:11:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$136", + "typeString": "contract ENS" + } + }, + "id": 6680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3239:5:30", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 105, + "src": "3227:17:30", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 6682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3227:29:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 6683, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6674, + "src": "3260:7:30", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3227:40:30", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6691, + "nodeType": "IfStatement", + "src": "3223:119:30", + "trueBody": { + "id": 6690, + "nodeType": "Block", + "src": "3269:73:30", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 6686, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6674, + "src": "3311:7:30", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6687, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6676, + "src": "3320:10:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 6685, + "name": "AccountIsNotEnsOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6592, + "src": "3290:20:30", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$", + "typeString": "function (address,bytes32) pure returns (error)" + } + }, + "id": 6688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3290:41:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6689, + "nodeType": "RevertStatement", + "src": "3283:48:30" + } + ] + } + } + ] + }, + "documentation": { + "id": 6672, + "nodeType": "StructuredDocumentation", + "src": "2807:327:30", + "text": " @dev Private helper function to check if the specified address owns the ENS domain.\n @param account Address expected to be the domain owner.\n @param domainHash Namehash of the domain.\n Note: Reverts with `AccountIsNotEnsOwner` error if the address is not the owner of the ENS domain." + }, + "id": 6693, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkEnsOwner", + "nameLocation": "3148:14:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6674, + "mutability": "mutable", + "name": "account", + "nameLocation": "3171:7:30", + "nodeType": "VariableDeclaration", + "scope": 6693, + "src": "3163:15:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6673, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3163:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6676, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "3188:10:30", + "nodeType": "VariableDeclaration", + "scope": 6693, + "src": "3180:18:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6675, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3180:7:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3162:37:30" + }, + "returnParameters": { + "id": 6678, + "nodeType": "ParameterList", + "parameters": [], + "src": "3213:0:30" + }, + "scope": 6694, + "src": "3139:209:30", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "scope": 6695, + "src": "669:2681:30", + "usedErrors": [ + 6592 + ], + "usedEvents": [] + } + ], + "src": "37:3314:30" + }, + "id": 30 + }, + "contracts/Registrars/SciRegistrar.sol": { + "ast": { + "absolutePath": "contracts/Registrars/SciRegistrar.sol", + "exportedSymbols": { + "AccessControlDefaultAdminRules": [ + 2436 + ], + "ISciRegistry": [ + 7088 + ], + "IVerifier": [ + 7453 + ], + "SciRegistrar": [ + 6776 + ] + }, + "id": 6777, + "license": "AGPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6696, + "literals": [ + "solidity", + "0.8", + ".28" + ], + "nodeType": "PragmaDirective", + "src": "37:23:31" + }, + { + "absolutePath": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", + "file": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", + "id": 6698, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6777, + "sourceUnit": 2437, + "src": "62:124:31", + "symbolAliases": [ + { + "foreign": { + "id": 6697, + "name": "AccessControlDefaultAdminRules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2436, + "src": "70:30:31", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", + "file": "../SciRegistry/ISciRegistry.sol", + "id": 6700, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6777, + "sourceUnit": 7089, + "src": "187:61:31", + "symbolAliases": [ + { + "foreign": { + "id": 6699, + "name": "ISciRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7088, + "src": "195:12:31", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/Verifiers/IVerifier.sol", + "file": "../Verifiers/IVerifier.sol", + "id": 6702, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6777, + "sourceUnit": 7454, + "src": "249:53:31", + "symbolAliases": [ + { + "foreign": { + "id": 6701, + "name": "IVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7453, + "src": "257:9:31", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 6704, + "name": "AccessControlDefaultAdminRules", + "nameLocations": [ + "768:30:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2436, + "src": "768:30:31" + }, + "id": 6705, + "nodeType": "InheritanceSpecifier", + "src": "768:30:31" + } + ], + "canonicalName": "SciRegistrar", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 6703, + "nodeType": "StructuredDocumentation", + "src": "304:438:31", + "text": " @title SciRegistrar\n @dev This contract allows addresses with REGISTER_DOMAIN_ROLE role to register a domain\n in the SCI Registry. This will be use by the SCI team to register domains until the protocol\n became widly used and we don't need to be registering domains for protocols.\n The address with REGISTER_DOMAIN_ROLE and DEFAULT_ADMIN_ROLE should be a multisig.\n @custom:security-contact security@sci.domains" + }, + "fullyImplemented": true, + "id": 6776, + "linearizedBaseContracts": [ + 6776, + 2436, + 1488, + 3670, + 3682, + 2566, + 2535, + 1571, + 3419 + ], + "name": "SciRegistrar", + "nameLocation": "752:12:31", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "2a3fea62", + "id": 6710, + "mutability": "constant", + "name": "REGISTER_DOMAIN_ROLE", + "nameLocation": "873:20:31", + "nodeType": "VariableDeclaration", + "scope": 6776, + "src": "849:80:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6706, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "849:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "52454749535445525f444f4d41494e5f524f4c45", + "id": 6708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "906:22:31", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68", + "typeString": "literal_string \"REGISTER_DOMAIN_ROLE\"" + }, + "value": "REGISTER_DOMAIN_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68", + "typeString": "literal_string \"REGISTER_DOMAIN_ROLE\"" + } + ], + "id": 6707, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "896:9:31", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "896:33:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7b103999", + "id": 6713, + "mutability": "immutable", + "name": "registry", + "nameLocation": "966:8:31", + "nodeType": "VariableDeclaration", + "scope": 6776, + "src": "936:38:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + }, + "typeName": { + "id": 6712, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6711, + "name": "ISciRegistry", + "nameLocations": [ + "936:12:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7088, + "src": "936:12:31" + }, + "referencedDeclaration": 7088, + "src": "936:12:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 6732, + "nodeType": "Block", + "src": "1439:61:31", + "statements": [ + { + "expression": { + "id": 6730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6726, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6713, + "src": "1449:8:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6728, + "name": "_sciRegistryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6716, + "src": "1473:19:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6727, + "name": "ISciRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7088, + "src": "1460:12:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISciRegistry_$7088_$", + "typeString": "type(contract ISciRegistry)" + } + }, + "id": 6729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1460:33:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "src": "1449:44:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "id": 6731, + "nodeType": "ExpressionStatement", + "src": "1449:44:31" + } + ] + }, + "documentation": { + "id": 6714, + "nodeType": "StructuredDocumentation", + "src": "981:310:31", + "text": " @dev Initializes the contract by setting up the SCI Registry reference and defining the admin rules.\n @param _sciRegistryAddress Address of the custom domain registry contract.\n @param initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information." + }, + "id": 6733, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 6721, + "name": "initialDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6718, + "src": "1411:12:31", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6722, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "1425:10:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 6723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1425:12:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 6724, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 6720, + "name": "AccessControlDefaultAdminRules", + "nameLocations": [ + "1380:30:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2436, + "src": "1380:30:31" + }, + "nodeType": "ModifierInvocation", + "src": "1380:58:31" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6716, + "mutability": "mutable", + "name": "_sciRegistryAddress", + "nameLocation": "1325:19:31", + "nodeType": "VariableDeclaration", + "scope": 6733, + "src": "1317:27:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1317:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6718, + "mutability": "mutable", + "name": "initialDelay", + "nameLocation": "1361:12:31", + "nodeType": "VariableDeclaration", + "scope": 6733, + "src": "1354:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 6717, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "1354:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "1307:72:31" + }, + "returnParameters": { + "id": 6725, + "nodeType": "ParameterList", + "parameters": [], + "src": "1439:0:31" + }, + "scope": 6776, + "src": "1296:204:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 6751, + "nodeType": "Block", + "src": "1910:59:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6747, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6736, + "src": "1944:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6748, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6738, + "src": "1951:10:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 6744, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6713, + "src": "1920:8:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "id": 6746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1929:14:31", + "memberName": "registerDomain", + "nodeType": "MemberAccess", + "referencedDeclaration": 7032, + "src": "1920:23:31", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$", + "typeString": "function (address,bytes32) external" + } + }, + "id": 6749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1920:42:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6750, + "nodeType": "ExpressionStatement", + "src": "1920:42:31" + } + ] + }, + "documentation": { + "id": 6734, + "nodeType": "StructuredDocumentation", + "src": "1506:278:31", + "text": " @dev Registers a domain in the SCI Registry contract.\n @param owner Address expected to be the domain owner.\n @param domainHash Namehash of the domain.\n Requirements:\n - The caller must have the REGISTER_DOMAIN_ROLE role." + }, + "functionSelector": "a8c00861", + "id": 6752, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 6741, + "name": "REGISTER_DOMAIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6710, + "src": "1888:20:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 6742, + "kind": "modifierInvocation", + "modifierName": { + "id": 6740, + "name": "onlyRole", + "nameLocations": [ + "1879:8:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1233, + "src": "1879:8:31" + }, + "nodeType": "ModifierInvocation", + "src": "1879:30:31" + } + ], + "name": "registerDomain", + "nameLocation": "1798:14:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6739, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6736, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1830:5:31", + "nodeType": "VariableDeclaration", + "scope": 6752, + "src": "1822:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1822:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6738, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "1853:10:31", + "nodeType": "VariableDeclaration", + "scope": 6752, + "src": "1845:18:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6737, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1845:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1812:57:31" + }, + "returnParameters": { + "id": 6743, + "nodeType": "ParameterList", + "parameters": [], + "src": "1910:0:31" + }, + "scope": 6776, + "src": "1789:180:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6774, + "nodeType": "Block", + "src": "2614:81:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6769, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6755, + "src": "2660:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6770, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6757, + "src": "2667:10:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6771, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6760, + "src": "2679:8:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + ], + "expression": { + "id": 6766, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6713, + "src": "2624:8:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "id": 6768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2633:26:31", + "memberName": "registerDomainWithVerifier", + "nodeType": "MemberAccess", + "referencedDeclaration": 7043, + "src": "2624:35:31", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$7453_$returns$__$", + "typeString": "function (address,bytes32,contract IVerifier) external" + } + }, + "id": 6772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2624:64:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6773, + "nodeType": "ExpressionStatement", + "src": "2624:64:31" + } + ] + }, + "documentation": { + "id": 6753, + "nodeType": "StructuredDocumentation", + "src": "1975:473:31", + "text": " @dev Registers a domain with a verifier in the SCI Registry contract.\n @param owner Address expected to be the domain owner.\n @param domainHash Namehash of the domain.\n @param verifier Address of the verifier contract.\n Requirements:\n - The caller must have the REGISTER_DOMAIN_ROLE role.\n Note: This contract must only be handle by the SCI Team so we assume\n it's safe to receive the owner." + }, + "functionSelector": "dd738e6c", + "id": 6775, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 6763, + "name": "REGISTER_DOMAIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6710, + "src": "2592:20:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 6764, + "kind": "modifierInvocation", + "modifierName": { + "id": 6762, + "name": "onlyRole", + "nameLocations": [ + "2583:8:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1233, + "src": "2583:8:31" + }, + "nodeType": "ModifierInvocation", + "src": "2583:30:31" + } + ], + "name": "registerDomainWithVerifier", + "nameLocation": "2462:26:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6761, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6755, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2506:5:31", + "nodeType": "VariableDeclaration", + "scope": 6775, + "src": "2498:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6754, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2498:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6757, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "2529:10:31", + "nodeType": "VariableDeclaration", + "scope": 6775, + "src": "2521:18:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6756, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2521:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6760, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "2559:8:31", + "nodeType": "VariableDeclaration", + "scope": 6775, + "src": "2549:18:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 6759, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6758, + "name": "IVerifier", + "nameLocations": [ + "2549:9:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "2549:9:31" + }, + "referencedDeclaration": 7453, + "src": "2549:9:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + } + ], + "src": "2488:85:31" + }, + "returnParameters": { + "id": 6765, + "nodeType": "ParameterList", + "parameters": [], + "src": "2614:0:31" + }, + "scope": 6776, + "src": "2453:242:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6777, + "src": "743:1954:31", + "usedErrors": [ + 1498, + 1501, + 2448, + 2451, + 2456, + 4746 + ], + "usedEvents": [ + 1510, + 1519, + 1528, + 2463, + 2466, + 2473, + 2476 + ] + } + ], + "src": "37:2661:31" + }, + "id": 31 + }, + "contracts/SCI.sol": { + "ast": { + "absolutePath": "contracts/SCI.sol", + "exportedSymbols": { + "ISciRegistry": [ + 7088 + ], + "IVerifier": [ + 7453 + ], + "Initializable": [ + 1146 + ], + "Ownable2StepUpgradeable": [ + 697 + ], + "SCI": [ + 6971 + ] + }, + "id": 6972, + "license": "AGPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6778, + "literals": [ + "solidity", + "0.8", + ".28" + ], + "nodeType": "PragmaDirective", + "src": "37:23:32" + }, + { + "absolutePath": "contracts/Verifiers/IVerifier.sol", + "file": "./Verifiers/IVerifier.sol", + "id": 6780, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6972, + "sourceUnit": 7454, + "src": "62:52:32", + "symbolAliases": [ + { + "foreign": { + "id": 6779, + "name": "IVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7453, + "src": "70:9:32", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", + "file": "./SciRegistry/ISciRegistry.sol", + "id": 6782, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6972, + "sourceUnit": 7089, + "src": "115:60:32", + "symbolAliases": [ + { + "foreign": { + "id": 6781, + "name": "ISciRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7088, + "src": "123:12:32", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "id": 6784, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6972, + "sourceUnit": 1147, + "src": "176:96:32", + "symbolAliases": [ + { + "foreign": { + "id": 6783, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "184:13:32", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", + "id": 6786, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6972, + "sourceUnit": 698, + "src": "273:111:32", + "symbolAliases": [ + { + "foreign": { + "id": 6785, + "name": "Ownable2StepUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 697, + "src": "281:23:32", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 6788, + "name": "Initializable", + "nameLocations": [ + "724:13:32" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1146, + "src": "724:13:32" + }, + "id": 6789, + "nodeType": "InheritanceSpecifier", + "src": "724:13:32" + }, + { + "baseName": { + "id": 6790, + "name": "Ownable2StepUpgradeable", + "nameLocations": [ + "739:23:32" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 697, + "src": "739:23:32" + }, + "id": 6791, + "nodeType": "InheritanceSpecifier", + "src": "739:23:32" + } + ], + "canonicalName": "SCI", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 6787, + "nodeType": "StructuredDocumentation", + "src": "386:321:32", + "text": " @title SCI\n @dev This contract facilitates interaction with the SCI protocol, offering a simplified interface\n for apps and wallets. Apps and wallets can also directly interact with the\n Registry and verifiers directly if desired, bypassing this contract.\n @custom:security-contact security@sci.domains" + }, + "fullyImplemented": true, + "id": 6971, + "linearizedBaseContracts": [ + 6971, + 697, + 892, + 1192, + 1146 + ], + "name": "SCI", + "nameLocation": "717:3:32", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "7b103999", + "id": 6794, + "mutability": "mutable", + "name": "registry", + "nameLocation": "789:8:32", + "nodeType": "VariableDeclaration", + "scope": 6971, + "src": "769:28:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + }, + "typeName": { + "id": 6793, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6792, + "name": "ISciRegistry", + "nameLocations": [ + "769:12:32" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7088, + "src": "769:12:32" + }, + "referencedDeclaration": 7088, + "src": "769:12:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 6795, + "nodeType": "StructuredDocumentation", + "src": "804:62:32", + "text": " @dev Emitted when the Registry is changed." + }, + "eventSelector": "363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f5", + "id": 6801, + "name": "RegistrySet", + "nameLocation": "877:11:32", + "nodeType": "EventDefinition", + "parameters": { + "id": 6800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6797, + "indexed": true, + "mutability": "mutable", + "name": "oldRegistryAddress", + "nameLocation": "905:18:32", + "nodeType": "VariableDeclaration", + "scope": 6801, + "src": "889:34:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "889:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6799, + "indexed": true, + "mutability": "mutable", + "name": "newRegistryAddress", + "nameLocation": "941:18:32", + "nodeType": "VariableDeclaration", + "scope": 6801, + "src": "925:34:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "925:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "888:72:32" + }, + "src": "871:90:32" + }, + { + "body": { + "id": 6822, + "nodeType": "Block", + "src": "1342:107:32", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6811, + "name": "__Ownable2Step_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 598, + "src": "1352:19:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 6812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1352:21:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6813, + "nodeType": "ExpressionStatement", + "src": "1352:21:32" + }, + { + "expression": { + "arguments": [ + { + "id": 6815, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6804, + "src": "1398:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6814, + "name": "__Ownable_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "1383:14:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 6816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1383:21:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6817, + "nodeType": "ExpressionStatement", + "src": "1383:21:32" + }, + { + "expression": { + "arguments": [ + { + "id": 6819, + "name": "registryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6806, + "src": "1426:15:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6818, + "name": "setRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6970, + "src": "1414:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 6820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1414:28:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6821, + "nodeType": "ExpressionStatement", + "src": "1414:28:32" + } + ] + }, + "documentation": { + "id": 6802, + "nodeType": "StructuredDocumentation", + "src": "967:289:32", + "text": " @dev Initializes the SCI contract with the owner and registry address.\n Can only be called once during contract deployment.\n @param owner The owner of this contract.\n @param registryAddress The address of the registry to be used by the contract." + }, + "functionSelector": "485cc955", + "id": 6823, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 6809, + "kind": "modifierInvocation", + "modifierName": { + "id": 6808, + "name": "initializer", + "nameLocations": [ + "1330:11:32" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1000, + "src": "1330:11:32" + }, + "nodeType": "ModifierInvocation", + "src": "1330:11:32" + } + ], + "name": "initialize", + "nameLocation": "1270:10:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6804, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1289:5:32", + "nodeType": "VariableDeclaration", + "scope": 6823, + "src": "1281:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1281:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6806, + "mutability": "mutable", + "name": "registryAddress", + "nameLocation": "1304:15:32", + "nodeType": "VariableDeclaration", + "scope": 6823, + "src": "1296:23:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6805, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1296:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1280:40:32" + }, + "returnParameters": { + "id": 6810, + "nodeType": "ParameterList", + "parameters": [], + "src": "1342:0:32" + }, + "scope": 6971, + "src": "1261:188:32", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6843, + "nodeType": "Block", + "src": "1834:63:32", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6840, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6826, + "src": "1879:10:32", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 6838, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6794, + "src": "1851:8:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "id": 6839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1860:18:32", + "memberName": "domainHashToRecord", + "nodeType": "MemberAccess", + "referencedDeclaration": 7024, + "src": "1851:27:32", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$_t_contract$_IVerifier_$7453_$_t_uint256_$_t_uint256_$", + "typeString": "function (bytes32) view external returns (address,contract IVerifier,uint256,uint256)" + } + }, + "id": 6841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1851:39:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_contract$_IVerifier_$7453_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(address,contract IVerifier,uint256,uint256)" + } + }, + "functionReturnParameters": 6837, + "id": 6842, + "nodeType": "Return", + "src": "1844:46:32" + } + ] + }, + "documentation": { + "id": 6824, + "nodeType": "StructuredDocumentation", + "src": "1455:113:32", + "text": " @dev Returns info from the domain.\n @param domainHash The namehash of the domain." + }, + "functionSelector": "5b377fa2", + "id": 6844, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "domainHashToRecord", + "nameLocation": "1582:18:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6826, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "1618:10:32", + "nodeType": "VariableDeclaration", + "scope": 6844, + "src": "1610:18:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6825, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1610:7:32", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1600:34:32" + }, + "returnParameters": { + "id": 6837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6829, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1703:5:32", + "nodeType": "VariableDeclaration", + "scope": 6844, + "src": "1695:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1695:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6832, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "1732:8:32", + "nodeType": "VariableDeclaration", + "scope": 6844, + "src": "1722:18:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 6831, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6830, + "name": "IVerifier", + "nameLocations": [ + "1722:9:32" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "1722:9:32" + }, + "referencedDeclaration": 7453, + "src": "1722:9:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6834, + "mutability": "mutable", + "name": "lastOwnerSetTime", + "nameLocation": "1762:16:32", + "nodeType": "VariableDeclaration", + "scope": 6844, + "src": "1754:24:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6833, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1754:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6836, + "mutability": "mutable", + "name": "lastVerifierSetTime", + "nameLocation": "1800:19:32", + "nodeType": "VariableDeclaration", + "scope": 6844, + "src": "1792:27:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6835, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1792:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1681:148:32" + }, + "scope": 6971, + "src": "1573:324:32", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6901, + "nodeType": "Block", + "src": "2608:472:32", + "statements": [ + { + "assignments": [ + 6862 + ], + "declarations": [ + { + "constant": false, + "id": 6862, + "mutability": "mutable", + "name": "domainsVerification", + "nameLocation": "2635:19:32", + "nodeType": "VariableDeclaration", + "scope": 6901, + "src": "2618:36:32", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6860, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2618:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6861, + "nodeType": "ArrayTypeName", + "src": "2618:9:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 6869, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 6866, + "name": "domainHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6848, + "src": "2671:12:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 6867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2684:6:32", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2671:19:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2657:13:32", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 6863, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2661:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6864, + "nodeType": "ArrayTypeName", + "src": "2661:9:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 6868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2657:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2618:73:32" + }, + { + "assignments": [ + 6871 + ], + "declarations": [ + { + "constant": false, + "id": 6871, + "mutability": "mutable", + "name": "domainHashesLength", + "nameLocation": "2709:18:32", + "nodeType": "VariableDeclaration", + "scope": 6901, + "src": "2701:26:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2701:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6874, + "initialValue": { + "expression": { + "id": 6872, + "name": "domainHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6848, + "src": "2730:12:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 6873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2743:6:32", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2730:19:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2701:48:32" + }, + { + "body": { + "id": 6897, + "nodeType": "Block", + "src": "2801:237:32", + "statements": [ + { + "expression": { + "id": 6891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 6881, + "name": "domainsVerification", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6862, + "src": "2815:19:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 6883, + "indexExpression": { + "id": 6882, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6876, + "src": "2835:1:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2815:22:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 6885, + "name": "domainHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6848, + "src": "2881:12:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 6887, + "indexExpression": { + "id": 6886, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6876, + "src": "2894:1:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2881:15:32", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6888, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6850, + "src": "2914:15:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6889, + "name": "chainId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6852, + "src": "2947:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6884, + "name": "isVerifiedForDomainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6943, + "src": "2840:23:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bytes32,address,uint256) view returns (uint256)" + } + }, + "id": 6890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2840:128:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2815:153:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6892, + "nodeType": "ExpressionStatement", + "src": "2815:153:32" + }, + { + "id": 6896, + "nodeType": "UncheckedBlock", + "src": "2982:46:32", + "statements": [ + { + "expression": { + "id": 6894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "3010:3:32", + "subExpression": { + "id": 6893, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6876, + "src": "3012:1:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6895, + "nodeType": "ExpressionStatement", + "src": "3010:3:32" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6878, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6876, + "src": "2775:1:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6879, + "name": "domainHashesLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6871, + "src": "2779:18:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2775:22:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6898, + "initializationExpression": { + "assignments": [ + 6876 + ], + "declarations": [ + { + "constant": false, + "id": 6876, + "mutability": "mutable", + "name": "i", + "nameLocation": "2772:1:32", + "nodeType": "VariableDeclaration", + "scope": 6898, + "src": "2764:9:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6875, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2764:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6877, + "nodeType": "VariableDeclarationStatement", + "src": "2764:9:32" + }, + "isSimpleCounterLoop": false, + "nodeType": "ForStatement", + "src": "2759:279:32" + }, + { + "expression": { + "id": 6899, + "name": "domainsVerification", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6862, + "src": "3054:19:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 6857, + "id": 6900, + "nodeType": "Return", + "src": "3047:26:32" + } + ] + }, + "documentation": { + "id": 6845, + "nodeType": "StructuredDocumentation", + "src": "1903:513:32", + "text": " @dev Same as isVerifiedForDomainHash but for multiple domains.\n @param domainHashes An array of domain hashes.\n @param contractAddress The address of the contract is being verified.\n @param chainId The id of the chain the contract is deployed in.\n @return an array of uint256 representing the time when the contract was verified for each domain\n or 0 if it wasn't.\n Note: If there is no verifier set then it returns false for that `domainHash`." + }, + "functionSelector": "929d1ac1", + "id": 6902, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isVerifiedForMultipleDomainHashes", + "nameLocation": "2430:33:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6853, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6848, + "mutability": "mutable", + "name": "domainHashes", + "nameLocation": "2490:12:32", + "nodeType": "VariableDeclaration", + "scope": 6902, + "src": "2473:29:32", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 6846, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2473:7:32", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6847, + "nodeType": "ArrayTypeName", + "src": "2473:9:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6850, + "mutability": "mutable", + "name": "contractAddress", + "nameLocation": "2520:15:32", + "nodeType": "VariableDeclaration", + "scope": 6902, + "src": "2512:23:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6849, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2512:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6852, + "mutability": "mutable", + "name": "chainId", + "nameLocation": "2553:7:32", + "nodeType": "VariableDeclaration", + "scope": 6902, + "src": "2545:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2545:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2463:103:32" + }, + "returnParameters": { + "id": 6857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6856, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6902, + "src": "2590:16:32", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2590:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6855, + "nodeType": "ArrayTypeName", + "src": "2590:9:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2589:18:32" + }, + "scope": 6971, + "src": "2421:659:32", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6942, + "nodeType": "Block", + "src": "3851:240:32", + "statements": [ + { + "assignments": [ + null, + 6916, + null, + null + ], + "declarations": [ + null, + { + "constant": false, + "id": 6916, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "3874:8:32", + "nodeType": "VariableDeclaration", + "scope": 6942, + "src": "3864:18:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 6915, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6914, + "name": "IVerifier", + "nameLocations": [ + "3864:9:32" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "3864:9:32" + }, + "referencedDeclaration": 7453, + "src": "3864:9:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + }, + null, + null + ], + "id": 6921, + "initialValue": { + "arguments": [ + { + "id": 6919, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6905, + "src": "3918:10:32", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 6917, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6794, + "src": "3890:8:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "id": 6918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3899:18:32", + "memberName": "domainHashToRecord", + "nodeType": "MemberAccess", + "referencedDeclaration": 7024, + "src": "3890:27:32", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$_t_contract$_IVerifier_$7453_$_t_uint256_$_t_uint256_$", + "typeString": "function (bytes32) view external returns (address,contract IVerifier,uint256,uint256)" + } + }, + "id": 6920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3890:39:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_contract$_IVerifier_$7453_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(address,contract IVerifier,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3861:68:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6924, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6916, + "src": "3952:8:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + ], + "id": 6923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3944:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6922, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3944:7:32", + "typeDescriptions": {} + } + }, + "id": 6925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3944:17:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 6928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3973:1:32", + "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": 6927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3965:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6926, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3965:7:32", + "typeDescriptions": {} + } + }, + "id": 6929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3965:10:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3944:31:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6934, + "nodeType": "IfStatement", + "src": "3940:70:32", + "trueBody": { + "id": 6933, + "nodeType": "Block", + "src": "3977:33:32", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 6931, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3998:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 6913, + "id": 6932, + "nodeType": "Return", + "src": "3991:8:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 6937, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6905, + "src": "4047:10:32", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6938, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6907, + "src": "4059:15:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6939, + "name": "chainId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6909, + "src": "4076:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6935, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6916, + "src": "4027:8:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "id": 6936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4036:10:32", + "memberName": "isVerified", + "nodeType": "MemberAccess", + "referencedDeclaration": 7452, + "src": "4027:19:32", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bytes32,address,uint256) view external returns (uint256)" + } + }, + "id": 6940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4027:57:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6913, + "id": 6941, + "nodeType": "Return", + "src": "4020:64:32" + } + ] + }, + "documentation": { + "id": 6903, + "nodeType": "StructuredDocumentation", + "src": "3086:605:32", + "text": " @dev Returns if the `contractAddress` deployed in the chain with id `chainId` is verified.\n to interact with the domain with namehash `domainHash`.\n @param domainHash The namehash of the domain the contract is interacting with\n @param contractAddress The address of the contract is being verified.\n @param chainId The id of the chain the contract is deployed in.\n @return a uint256 representing the time when the contract was verified.\n If the contract is not verified, it returns 0.\n Note: If there is no verifier set then it returns 0." + }, + "functionSelector": "2019241b", + "id": 6943, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isVerifiedForDomainHash", + "nameLocation": "3705:23:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6905, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "3746:10:32", + "nodeType": "VariableDeclaration", + "scope": 6943, + "src": "3738:18:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6904, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3738:7:32", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6907, + "mutability": "mutable", + "name": "contractAddress", + "nameLocation": "3774:15:32", + "nodeType": "VariableDeclaration", + "scope": 6943, + "src": "3766:23:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6906, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3766:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6909, + "mutability": "mutable", + "name": "chainId", + "nameLocation": "3807:7:32", + "nodeType": "VariableDeclaration", + "scope": 6943, + "src": "3799:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6908, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3799:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3728:92:32" + }, + "returnParameters": { + "id": 6913, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6912, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6943, + "src": "3842:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3842:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3841:9:32" + }, + "scope": 6971, + "src": "3696:395:32", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 6969, + "nodeType": "Block", + "src": "4321:168:32", + "statements": [ + { + "assignments": [ + 6952 + ], + "declarations": [ + { + "constant": false, + "id": 6952, + "mutability": "mutable", + "name": "oldRegistryAddress", + "nameLocation": "4339:18:32", + "nodeType": "VariableDeclaration", + "scope": 6969, + "src": "4331:26:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6951, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4331:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 6957, + "initialValue": { + "arguments": [ + { + "id": 6955, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6794, + "src": "4368:8:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + ], + "id": 6954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4360:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4360:7:32", + "typeDescriptions": {} + } + }, + "id": 6956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4360:17:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4331:46:32" + }, + { + "expression": { + "id": 6962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6958, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6794, + "src": "4387:8:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6960, + "name": "newRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6946, + "src": "4411:11:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6959, + "name": "ISciRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7088, + "src": "4398:12:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISciRegistry_$7088_$", + "typeString": "type(contract ISciRegistry)" + } + }, + "id": 6961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4398:25:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "src": "4387:36:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISciRegistry_$7088", + "typeString": "contract ISciRegistry" + } + }, + "id": 6963, + "nodeType": "ExpressionStatement", + "src": "4387:36:32" + }, + { + "eventCall": { + "arguments": [ + { + "id": 6965, + "name": "oldRegistryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6952, + "src": "4450:18:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6966, + "name": "newRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6946, + "src": "4470:11:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6964, + "name": "RegistrySet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6801, + "src": "4438:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 6967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4438:44:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6968, + "nodeType": "EmitStatement", + "src": "4433:49:32" + } + ] + }, + "documentation": { + "id": 6944, + "nodeType": "StructuredDocumentation", + "src": "4097:160:32", + "text": " @dev Sets a new registry.\n @param newRegistry The address of the new SCI Registry.\n May emit a {RegistrySet} event." + }, + "functionSelector": "a91ee0dc", + "id": 6970, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 6949, + "kind": "modifierInvocation", + "modifierName": { + "id": 6948, + "name": "onlyOwner", + "nameLocations": [ + "4311:9:32" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 787, + "src": "4311:9:32" + }, + "nodeType": "ModifierInvocation", + "src": "4311:9:32" + } + ], + "name": "setRegistry", + "nameLocation": "4271:11:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6946, + "mutability": "mutable", + "name": "newRegistry", + "nameLocation": "4291:11:32", + "nodeType": "VariableDeclaration", + "scope": 6970, + "src": "4283:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4282:21:32" + }, + "returnParameters": { + "id": 6950, + "nodeType": "ParameterList", + "parameters": [], + "src": "4321:0:32" + }, + "scope": 6971, + "src": "4262:227:32", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 6972, + "src": "708:3783:32", + "usedErrors": [ + 728, + 733, + 909, + 912 + ], + "usedEvents": [ + 592, + 739, + 917, + 6801 + ] + } + ], + "src": "37:4455:32" + }, + "id": 32 + }, + "contracts/SciRegistry/ISciRegistry.sol": { + "ast": { + "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", + "exportedSymbols": { + "ISciRegistry": [ + 7088 + ], + "IVerifier": [ + 7453 + ] + }, + "id": 7089, + "license": "AGPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6973, + "literals": [ + "solidity", + "0.8", + ".28" + ], + "nodeType": "PragmaDirective", + "src": "37:23:33" + }, + { + "absolutePath": "contracts/Verifiers/IVerifier.sol", + "file": "../Verifiers/IVerifier.sol", + "id": 6975, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7089, + "sourceUnit": 7454, + "src": "62:53:33", + "symbolAliases": [ + { + "foreign": { + "id": 6974, + "name": "IVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7453, + "src": "70:9:33", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ISciRegistry", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 6976, + "nodeType": "StructuredDocumentation", + "src": "117:368:33", + "text": " @title ISciRegistry\n @dev This contract manages domain registration and verifiers. It uses role-based access control to allow\n only authorized accounts to register domains and update verifiers.\n The contract stores domain ownership and verifier information and allows domain owners to modify verifiers.\n @custom:security-contact security@sci.domains" + }, + "fullyImplemented": false, + "id": 7088, + "linearizedBaseContracts": [ + 7088 + ], + "name": "ISciRegistry", + "nameLocation": "496:12:33", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 6977, + "nodeType": "StructuredDocumentation", + "src": "515:110:33", + "text": " @dev Emitted when a new `domain` with the `domainHash` is\n registered by the `owner`." + }, + "eventSelector": "fb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a63", + "id": 6985, + "name": "DomainRegistered", + "nameLocation": "636:16:33", + "nodeType": "EventDefinition", + "parameters": { + "id": 6984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6979, + "indexed": true, + "mutability": "mutable", + "name": "registrar", + "nameLocation": "678:9:33", + "nodeType": "VariableDeclaration", + "scope": 6985, + "src": "662:25:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6978, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "662:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6981, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "713:5:33", + "nodeType": "VariableDeclaration", + "scope": 6985, + "src": "697:21:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6980, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "697:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6983, + "indexed": true, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "744:10:33", + "nodeType": "VariableDeclaration", + "scope": 6985, + "src": "728:26:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6982, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "728:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "652:108:33" + }, + "src": "630:131:33" + }, + { + "anonymous": false, + "documentation": { + "id": 6986, + "nodeType": "StructuredDocumentation", + "src": "767:163:33", + "text": " @dev Emitted when the `owner` of the `domainHash` adds a `verifier`.\n Note: This will also be emitted when the verifier is changed." + }, + "eventSelector": "c485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd2", + "id": 6998, + "name": "VerifierSet", + "nameLocation": "941:11:33", + "nodeType": "EventDefinition", + "parameters": { + "id": 6997, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6988, + "indexed": false, + "mutability": "mutable", + "name": "msgSender", + "nameLocation": "970:9:33", + "nodeType": "VariableDeclaration", + "scope": 6998, + "src": "962:17:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "962:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6990, + "indexed": true, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "1005:10:33", + "nodeType": "VariableDeclaration", + "scope": 6998, + "src": "989:26:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6989, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "989:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6993, + "indexed": true, + "mutability": "mutable", + "name": "oldVerifier", + "nameLocation": "1043:11:33", + "nodeType": "VariableDeclaration", + "scope": 6998, + "src": "1025:29:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 6992, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6991, + "name": "IVerifier", + "nameLocations": [ + "1025:9:33" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "1025:9:33" + }, + "referencedDeclaration": 7453, + "src": "1025:9:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6996, + "indexed": true, + "mutability": "mutable", + "name": "newVerifie", + "nameLocation": "1082:10:33", + "nodeType": "VariableDeclaration", + "scope": 6998, + "src": "1064:28:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 6995, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6994, + "name": "IVerifier", + "nameLocations": [ + "1064:9:33" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "1064:9:33" + }, + "referencedDeclaration": 7453, + "src": "1064:9:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + } + ], + "src": "952:146:33" + }, + "src": "935:164:33" + }, + { + "anonymous": false, + "documentation": { + "id": 6999, + "nodeType": "StructuredDocumentation", + "src": "1105:79:33", + "text": " @dev Emitted when the owner of a `domainHash` is set." + }, + "eventSelector": "c4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288", + "id": 7009, + "name": "OwnerSet", + "nameLocation": "1195:8:33", + "nodeType": "EventDefinition", + "parameters": { + "id": 7008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7001, + "indexed": false, + "mutability": "mutable", + "name": "msgSender", + "nameLocation": "1221:9:33", + "nodeType": "VariableDeclaration", + "scope": 7009, + "src": "1213:17:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7000, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1213:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7003, + "indexed": true, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "1256:10:33", + "nodeType": "VariableDeclaration", + "scope": 7009, + "src": "1240:26:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1240:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7005, + "indexed": true, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "1292:8:33", + "nodeType": "VariableDeclaration", + "scope": 7009, + "src": "1276:24:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7004, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1276:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7007, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1326:8:33", + "nodeType": "VariableDeclaration", + "scope": 7009, + "src": "1310:24:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1310:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1203:137:33" + }, + "src": "1189:152:33" + }, + { + "documentation": { + "id": 7010, + "nodeType": "StructuredDocumentation", + "src": "1347:183:33", + "text": " @dev Returns the owner, the IVerifier, lastOwnerSetTime and lastIVerifierSetTime\n for a given domainHash.\n @param domainHash The namehash of the domain." + }, + "functionSelector": "5b377fa2", + "id": 7024, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "domainHashToRecord", + "nameLocation": "1544:18:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7013, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7012, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "1580:10:33", + "nodeType": "VariableDeclaration", + "scope": 7024, + "src": "1572:18:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7011, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1572:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1562:34:33" + }, + "returnParameters": { + "id": 7023, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7015, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1665:5:33", + "nodeType": "VariableDeclaration", + "scope": 7024, + "src": "1657:13:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1657:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7018, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "1694:8:33", + "nodeType": "VariableDeclaration", + "scope": 7024, + "src": "1684:18:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 7017, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7016, + "name": "IVerifier", + "nameLocations": [ + "1684:9:33" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "1684:9:33" + }, + "referencedDeclaration": 7453, + "src": "1684:9:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7020, + "mutability": "mutable", + "name": "lastOwnerSetTime", + "nameLocation": "1724:16:33", + "nodeType": "VariableDeclaration", + "scope": 7024, + "src": "1716:24:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7019, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1716:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7022, + "mutability": "mutable", + "name": "lastIVerifierSetTime", + "nameLocation": "1762:20:33", + "nodeType": "VariableDeclaration", + "scope": 7024, + "src": "1754:28:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7021, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1754:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1643:149:33" + }, + "scope": 7088, + "src": "1535:258:33", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 7025, + "nodeType": "StructuredDocumentation", + "src": "1799:317:33", + "text": " @dev Register a domain.\n @param owner The owner of the domain.\n @param domainHash The namehash of the domain being registered.\n Requirements:\n - Only valid Registrars must be able to call this function.\n May emit a {DomainRegistered} event." + }, + "functionSelector": "a8c00861", + "id": 7032, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "registerDomain", + "nameLocation": "2130:14:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7030, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7027, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2153:5:33", + "nodeType": "VariableDeclaration", + "scope": 7032, + "src": "2145:13:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2145:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7029, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "2168:10:33", + "nodeType": "VariableDeclaration", + "scope": 7032, + "src": "2160:18:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7028, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2160:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2144:35:33" + }, + "returnParameters": { + "id": 7031, + "nodeType": "ParameterList", + "parameters": [], + "src": "2188:0:33" + }, + "scope": 7088, + "src": "2121:68:33", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 7033, + "nodeType": "StructuredDocumentation", + "src": "2195:655:33", + "text": " @dev Same as registerDomain but it also adds a IVerifier.\n @param owner The owner of the domain being registered.\n @param domainHash The namehash of the domain being registered.\n @param verifier The verifier that is being set for the domain.\n Requirements:\n - Only valid Registrars must be able to call this function.\n Note: Most of registrars should implement this function by sending\n the message sender as the owner to avoid other addresses changing or setting\n a malicous verifier.\n May emit a {DomainRegistered} and a {IVerifierAdded} events." + }, + "functionSelector": "dd738e6c", + "id": 7043, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "registerDomainWithVerifier", + "nameLocation": "2864:26:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7035, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2908:5:33", + "nodeType": "VariableDeclaration", + "scope": 7043, + "src": "2900:13:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2900:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7037, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "2931:10:33", + "nodeType": "VariableDeclaration", + "scope": 7043, + "src": "2923:18:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7036, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2923:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7040, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "2961:8:33", + "nodeType": "VariableDeclaration", + "scope": 7043, + "src": "2951:18:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 7039, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7038, + "name": "IVerifier", + "nameLocations": [ + "2951:9:33" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "2951:9:33" + }, + "referencedDeclaration": 7453, + "src": "2951:9:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + } + ], + "src": "2890:85:33" + }, + "returnParameters": { + "id": 7042, + "nodeType": "ParameterList", + "parameters": [], + "src": "2984:0:33" + }, + "scope": 7088, + "src": "2855:130:33", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 7044, + "nodeType": "StructuredDocumentation", + "src": "2991:83:33", + "text": " @dev Returns true if the account is the owner of the domainHash." + }, + "functionSelector": "8023597e", + "id": 7053, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isDomainOwner", + "nameLocation": "3088:13:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7046, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "3110:10:33", + "nodeType": "VariableDeclaration", + "scope": 7053, + "src": "3102:18:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7045, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3102:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7048, + "mutability": "mutable", + "name": "account", + "nameLocation": "3130:7:33", + "nodeType": "VariableDeclaration", + "scope": 7053, + "src": "3122:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7047, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3122:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3101:37:33" + }, + "returnParameters": { + "id": 7052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7051, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7053, + "src": "3162:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7050, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3162:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3161:6:33" + }, + "scope": 7088, + "src": "3079:89:33", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 7054, + "nodeType": "StructuredDocumentation", + "src": "3174:206:33", + "text": " @dev Returns the owner of the domainHash.\n @param domainHash The namehash of the domain.\n @return The address of the owner or the ZERO_ADDRESS if the domain is not registered." + }, + "functionSelector": "d26cdd20", + "id": 7061, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "domainOwner", + "nameLocation": "3394:11:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7057, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7056, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "3414:10:33", + "nodeType": "VariableDeclaration", + "scope": 7061, + "src": "3406:18:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7055, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3406:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3405:20:33" + }, + "returnParameters": { + "id": 7060, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7059, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7061, + "src": "3449:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7058, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3449:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3448:9:33" + }, + "scope": 7088, + "src": "3385:73:33", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 7062, + "nodeType": "StructuredDocumentation", + "src": "3464:239:33", + "text": " @dev Returns the IVerifier of the domainHash.\n @param domainHash The namehash of the domain.\n @return The address of the IVerifier or the ZERO_ADDRESS if the domain or\n the IVerifier are not registered." + }, + "functionSelector": "5a75199a", + "id": 7070, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "domainVerifier", + "nameLocation": "3717:14:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7064, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "3740:10:33", + "nodeType": "VariableDeclaration", + "scope": 7070, + "src": "3732:18:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7063, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3732:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3731:20:33" + }, + "returnParameters": { + "id": 7069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7068, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7070, + "src": "3775:9:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 7067, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7066, + "name": "IVerifier", + "nameLocations": [ + "3775:9:33" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "3775:9:33" + }, + "referencedDeclaration": 7453, + "src": "3775:9:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + } + ], + "src": "3774:11:33" + }, + "scope": 7088, + "src": "3708:78:33", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 7071, + "nodeType": "StructuredDocumentation", + "src": "3792:236:33", + "text": " @dev Returns the timestamp of the block where the IVerifier was set.\n @param domainHash The namehash of the domain.\n @return The timestamp of the block where the IVerifier was set or\n 0 if it wasn't." + }, + "functionSelector": "a2a6c0eb", + "id": 7078, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "domainVerifierSetTime", + "nameLocation": "4042:21:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7073, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "4072:10:33", + "nodeType": "VariableDeclaration", + "scope": 7078, + "src": "4064:18:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7072, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4064:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4063:20:33" + }, + "returnParameters": { + "id": 7077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7076, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7078, + "src": "4107:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4107:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4106:9:33" + }, + "scope": 7088, + "src": "4033:83:33", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 7079, + "nodeType": "StructuredDocumentation", + "src": "4122:402:33", + "text": " @dev Sets a IVerifier to the domain hash.\n @param domainHash The namehash of the domain.\n @param verifier The address of the IVerifier contract.\n Requirements:\n - the caller must be the owner of the domain.\n May emit a {IVerifierAdded} event.\n Note: If you want to remove a IVerifier you can set it to the ZERO_ADDRESS." + }, + "functionSelector": "a692b9ef", + "id": 7087, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setVerifier", + "nameLocation": "4538:11:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7081, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "4558:10:33", + "nodeType": "VariableDeclaration", + "scope": 7087, + "src": "4550:18:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7080, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4550:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7084, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "4580:8:33", + "nodeType": "VariableDeclaration", + "scope": 7087, + "src": "4570:18:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 7083, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7082, + "name": "IVerifier", + "nameLocations": [ + "4570:9:33" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "4570:9:33" + }, + "referencedDeclaration": 7453, + "src": "4570:9:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + } + ], + "src": "4549:40:33" + }, + "returnParameters": { + "id": 7086, + "nodeType": "ParameterList", + "parameters": [], + "src": "4598:0:33" + }, + "scope": 7088, + "src": "4529:70:33", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 7089, + "src": "486:4115:33", + "usedErrors": [], + "usedEvents": [ + 6985, + 6998, + 7009 + ] + } + ], + "src": "37:4565:33" + }, + "id": 33 + }, + "contracts/SciRegistry/SciRegistry.sol": { + "ast": { + "absolutePath": "contracts/SciRegistry/SciRegistry.sol", + "exportedSymbols": { + "AccessControlDefaultAdminRules": [ + 2436 + ], + "Context": [ + 3419 + ], + "DomainManager": [ + 6556 + ], + "ISciRegistry": [ + 7088 + ], + "IVerifier": [ + 7453 + ], + "Pausable": [ + 3536 + ], + "SciRegistry": [ + 7437 + ] + }, + "id": 7438, + "license": "AGPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7090, + "literals": [ + "solidity", + "0.8", + ".28" + ], + "nodeType": "PragmaDirective", + "src": "37:23:34" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "@openzeppelin/contracts/utils/Context.sol", + "id": 7092, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7438, + "sourceUnit": 3420, + "src": "62:66:34", + "symbolAliases": [ + { + "foreign": { + "id": 7091, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3419, + "src": "70:7:34", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Pausable.sol", + "file": "@openzeppelin/contracts/utils/Pausable.sol", + "id": 7094, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7438, + "sourceUnit": 3537, + "src": "129:68:34", + "symbolAliases": [ + { + "foreign": { + "id": 7093, + "name": "Pausable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3536, + "src": "137:8:34", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", + "file": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", + "id": 7096, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7438, + "sourceUnit": 2437, + "src": "198:124:34", + "symbolAliases": [ + { + "foreign": { + "id": 7095, + "name": "AccessControlDefaultAdminRules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2436, + "src": "206:30:34", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/Verifiers/IVerifier.sol", + "file": "../Verifiers/IVerifier.sol", + "id": 7098, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7438, + "sourceUnit": 7454, + "src": "323:53:34", + "symbolAliases": [ + { + "foreign": { + "id": 7097, + "name": "IVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7453, + "src": "331:9:34", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", + "file": "./ISciRegistry.sol", + "id": 7100, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7438, + "sourceUnit": 7089, + "src": "377:48:34", + "symbolAliases": [ + { + "foreign": { + "id": 7099, + "name": "ISciRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7088, + "src": "385:12:34", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/DomainMangager/DomainManager.sol", + "file": "../DomainMangager/DomainManager.sol", + "id": 7102, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7438, + "sourceUnit": 6557, + "src": "426:66:34", + "symbolAliases": [ + { + "foreign": { + "id": 7101, + "name": "DomainManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6556, + "src": "434:13:34", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 7104, + "name": "ISciRegistry", + "nameLocations": [ + "626:12:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7088, + "src": "626:12:34" + }, + "id": 7105, + "nodeType": "InheritanceSpecifier", + "src": "626:12:34" + }, + { + "baseName": { + "id": 7106, + "name": "Context", + "nameLocations": [ + "644:7:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3419, + "src": "644:7:34" + }, + "id": 7107, + "nodeType": "InheritanceSpecifier", + "src": "644:7:34" + }, + { + "baseName": { + "id": 7108, + "name": "AccessControlDefaultAdminRules", + "nameLocations": [ + "657:30:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2436, + "src": "657:30:34" + }, + "id": 7109, + "nodeType": "InheritanceSpecifier", + "src": "657:30:34" + }, + { + "baseName": { + "id": 7110, + "name": "DomainManager", + "nameLocations": [ + "693:13:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6556, + "src": "693:13:34" + }, + "id": 7111, + "nodeType": "InheritanceSpecifier", + "src": "693:13:34" + }, + { + "baseName": { + "id": 7112, + "name": "Pausable", + "nameLocations": [ + "712:8:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3536, + "src": "712:8:34" + }, + "id": 7113, + "nodeType": "InheritanceSpecifier", + "src": "712:8:34" + } + ], + "canonicalName": "SciRegistry", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 7103, + "nodeType": "StructuredDocumentation", + "src": "494:103:34", + "text": " @title Registry\n @dev See {ISciRegistry}.\n @custom:security-contact security@sci.domains" + }, + "fullyImplemented": true, + "id": 7437, + "linearizedBaseContracts": [ + 7437, + 3536, + 6556, + 2436, + 1488, + 3670, + 3682, + 2566, + 2535, + 1571, + 3419, + 7088 + ], + "name": "SciRegistry", + "nameLocation": "607:11:34", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "SciRegistry.Record", + "documentation": { + "id": 7114, + "nodeType": "StructuredDocumentation", + "src": "727:343:34", + "text": " @dev Structure to hold domain record details, including:\n - owner: Address of the domain owner.\n - verifier: Address of the verifier contract associated with the domain.\n - ownerSetTime: Timestamp of when the domain owner was last set.\n - verifierSetTime: Timestamp of when the verifier was last set." + }, + "id": 7124, + "members": [ + { + "constant": false, + "id": 7116, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1107:5:34", + "nodeType": "VariableDeclaration", + "scope": 7124, + "src": "1099:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1099:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7119, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "1132:8:34", + "nodeType": "VariableDeclaration", + "scope": 7124, + "src": "1122:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 7118, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7117, + "name": "IVerifier", + "nameLocations": [ + "1122:9:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "1122:9:34" + }, + "referencedDeclaration": 7453, + "src": "1122:9:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7121, + "mutability": "mutable", + "name": "ownerSetTime", + "nameLocation": "1158:12:34", + "nodeType": "VariableDeclaration", + "scope": 7124, + "src": "1150:20:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1150:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7123, + "mutability": "mutable", + "name": "verifierSetTime", + "nameLocation": "1188:15:34", + "nodeType": "VariableDeclaration", + "scope": 7124, + "src": "1180:23:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7122, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1180:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Record", + "nameLocation": "1082:6:34", + "nodeType": "StructDefinition", + "scope": 7437, + "src": "1075:135:34", + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "be8cd266", + "id": 7129, + "mutability": "constant", + "name": "REGISTRAR_MANAGER_ROLE", + "nameLocation": "1290:22:34", + "nodeType": "VariableDeclaration", + "scope": 7437, + "src": "1266:84:34", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7125, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1266:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "5245474953545241525f4d414e414745525f524f4c45", + "id": 7127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1325:24:34", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a7509", + "typeString": "literal_string \"REGISTRAR_MANAGER_ROLE\"" + }, + "value": "REGISTRAR_MANAGER_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a7509", + "typeString": "literal_string \"REGISTRAR_MANAGER_ROLE\"" + } + ], + "id": 7126, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1315:9:34", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 7128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1315:35:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "f68e9553", + "id": 7134, + "mutability": "constant", + "name": "REGISTRAR_ROLE", + "nameLocation": "1425:14:34", + "nodeType": "VariableDeclaration", + "scope": 7437, + "src": "1401:68:34", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7130, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1401:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "5245474953545241525f524f4c45", + "id": 7132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1452:16:34", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_edcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238", + "typeString": "literal_string \"REGISTRAR_ROLE\"" + }, + "value": "REGISTRAR_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_edcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238", + "typeString": "literal_string \"REGISTRAR_ROLE\"" + } + ], + "id": 7131, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1442:9:34", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 7133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1442:27:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "e63ab1e9", + "id": 7139, + "mutability": "constant", + "name": "PAUSER_ROLE", + "nameLocation": "1546:11:34", + "nodeType": "VariableDeclaration", + "scope": 7437, + "src": "1522:62:34", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7135, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1522:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "5041555345525f524f4c45", + "id": 7137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1570:13:34", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", + "typeString": "literal_string \"PAUSER_ROLE\"" + }, + "value": "PAUSER_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", + "typeString": "literal_string \"PAUSER_ROLE\"" + } + ], + "id": 7136, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1560:9:34", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 7138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1560:24:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "baseFunctions": [ + 7024 + ], + "constant": false, + "documentation": { + "id": 7140, + "nodeType": "StructuredDocumentation", + "src": "1591:66:34", + "text": " @dev Maps the namehash of a domain to a Record." + }, + "functionSelector": "5b377fa2", + "id": 7145, + "mutability": "mutable", + "name": "domainHashToRecord", + "nameLocation": "1712:18:34", + "nodeType": "VariableDeclaration", + "scope": 7437, + "src": "1662:68:34", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7124_storage_$", + "typeString": "mapping(bytes32 => struct SciRegistry.Record)" + }, + "typeName": { + "id": 7144, + "keyName": "nameHash", + "keyNameLocation": "1678:8:34", + "keyType": { + "id": 7141, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1670:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1662:42:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7124_storage_$", + "typeString": "mapping(bytes32 => struct SciRegistry.Record)" + }, + "valueName": "domain", + "valueNameLocation": "1697:6:34", + "valueType": { + "id": 7143, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7142, + "name": "Record", + "nameLocations": [ + "1690:6:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7124, + "src": "1690:6:34" + }, + "referencedDeclaration": 7124, + "src": "1690:6:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$7124_storage_ptr", + "typeString": "struct SciRegistry.Record" + } + } + }, + "visibility": "public" + }, + { + "body": { + "id": 7167, + "nodeType": "Block", + "src": "2134:70:34", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7163, + "name": "REGISTRAR_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7134, + "src": "2158:14:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7164, + "name": "REGISTRAR_MANAGER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7129, + "src": "2174:22:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7162, + "name": "_setRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2026 + ], + "referencedDeclaration": 2026, + "src": "2144:13:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 7165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2144:53:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7166, + "nodeType": "ExpressionStatement", + "src": "2144:53:34" + } + ] + }, + "documentation": { + "id": 7146, + "nodeType": "StructuredDocumentation", + "src": "1737:257:34", + "text": " @dev Constructor to initialize the Registry contract.\n Sets the REGISTRAR_MANAGER_ROLE as the admin role of REGISTRAR_ROLE.\n @param initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information." + }, + "id": 7168, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 7151, + "name": "initialDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7148, + "src": "2077:12:34", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7152, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "2091:10:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 7153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2091:12:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 7154, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 7150, + "name": "AccessControlDefaultAdminRules", + "nameLocations": [ + "2046:30:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2436, + "src": "2046:30:34" + }, + "nodeType": "ModifierInvocation", + "src": "2046:58:34" + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 7158, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2127:4:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SciRegistry_$7437", + "typeString": "contract SciRegistry" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SciRegistry_$7437", + "typeString": "contract SciRegistry" + } + ], + "id": 7157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2119:7:34", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 7156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2119:7:34", + "typeDescriptions": {} + } + }, + "id": 7159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2119:13:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 7160, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 7155, + "name": "DomainManager", + "nameLocations": [ + "2105:13:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6556, + "src": "2105:13:34" + }, + "nodeType": "ModifierInvocation", + "src": "2105:28:34" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7148, + "mutability": "mutable", + "name": "initialDelay", + "nameLocation": "2027:12:34", + "nodeType": "VariableDeclaration", + "scope": 7168, + "src": "2020:19:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 7147, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "2020:6:34", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "2010:35:34" + }, + "returnParameters": { + "id": 7161, + "nodeType": "ParameterList", + "parameters": [], + "src": "2134:0:34" + }, + "scope": 7437, + "src": "1999:205:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 7032 + ], + "body": { + "id": 7181, + "nodeType": "Block", + "src": "2341:51:34", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7177, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7171, + "src": "2367:5:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7178, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7173, + "src": "2374:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7176, + "name": "_registerDomain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7354, + "src": "2351:15:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$", + "typeString": "function (address,bytes32)" + } + }, + "id": 7179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2351:34:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7180, + "nodeType": "ExpressionStatement", + "src": "2351:34:34" + } + ] + }, + "documentation": { + "id": 7169, + "nodeType": "StructuredDocumentation", + "src": "2210:58:34", + "text": " @dev See {ISciRegistry-registerDomain}." + }, + "functionSelector": "a8c00861", + "id": 7182, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "registerDomain", + "nameLocation": "2282:14:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7174, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7171, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2305:5:34", + "nodeType": "VariableDeclaration", + "scope": 7182, + "src": "2297:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2297:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7173, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "2320:10:34", + "nodeType": "VariableDeclaration", + "scope": 7182, + "src": "2312:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7172, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2312:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2296:35:34" + }, + "returnParameters": { + "id": 7175, + "nodeType": "ParameterList", + "parameters": [], + "src": "2341:0:34" + }, + "scope": 7437, + "src": "2273:119:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 7043 + ], + "body": { + "id": 7203, + "nodeType": "Block", + "src": "2603:95:34", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7194, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7185, + "src": "2629:5:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7195, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7187, + "src": "2636:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7193, + "name": "_registerDomain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7354, + "src": "2613:15:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$", + "typeString": "function (address,bytes32)" + } + }, + "id": 7196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2613:34:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7197, + "nodeType": "ExpressionStatement", + "src": "2613:34:34" + }, + { + "expression": { + "arguments": [ + { + "id": 7199, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7187, + "src": "2670:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7200, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7190, + "src": "2682:8:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + ], + "id": 7198, + "name": "_setVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7397, + "src": "2657:12:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IVerifier_$7453_$returns$__$", + "typeString": "function (bytes32,contract IVerifier)" + } + }, + "id": 7201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2657:34:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7202, + "nodeType": "ExpressionStatement", + "src": "2657:34:34" + } + ] + }, + "documentation": { + "id": 7183, + "nodeType": "StructuredDocumentation", + "src": "2398:70:34", + "text": " @dev See {ISciRegistry-registerDomainWithVerifier}." + }, + "functionSelector": "dd738e6c", + "id": 7204, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "registerDomainWithVerifier", + "nameLocation": "2482:26:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7185, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2526:5:34", + "nodeType": "VariableDeclaration", + "scope": 7204, + "src": "2518:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7184, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2518:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7187, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "2549:10:34", + "nodeType": "VariableDeclaration", + "scope": 7204, + "src": "2541:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7186, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2541:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7190, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "2579:8:34", + "nodeType": "VariableDeclaration", + "scope": 7204, + "src": "2569:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 7189, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7188, + "name": "IVerifier", + "nameLocations": [ + "2569:9:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "2569:9:34" + }, + "referencedDeclaration": 7453, + "src": "2569:9:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + } + ], + "src": "2508:85:34" + }, + "returnParameters": { + "id": 7192, + "nodeType": "ParameterList", + "parameters": [], + "src": "2603:0:34" + }, + "scope": 7437, + "src": "2473:225:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7214, + "nodeType": "Block", + "src": "2832:25:34", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7211, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "2842:6:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 7212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2842:8:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7213, + "nodeType": "ExpressionStatement", + "src": "2842:8:34" + } + ] + }, + "documentation": { + "id": 7205, + "nodeType": "StructuredDocumentation", + "src": "2704:75:34", + "text": " @dev Pauses registering a domain and setting a verifier." + }, + "functionSelector": "8456cb59", + "id": 7215, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 7208, + "name": "PAUSER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7139, + "src": "2819:11:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 7209, + "kind": "modifierInvocation", + "modifierName": { + "id": 7207, + "name": "onlyRole", + "nameLocations": [ + "2810:8:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1233, + "src": "2810:8:34" + }, + "nodeType": "ModifierInvocation", + "src": "2810:21:34" + } + ], + "name": "pause", + "nameLocation": "2793:5:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7206, + "nodeType": "ParameterList", + "parameters": [], + "src": "2798:2:34" + }, + "returnParameters": { + "id": 7210, + "nodeType": "ParameterList", + "parameters": [], + "src": "2832:0:34" + }, + "scope": 7437, + "src": "2784:73:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7225, + "nodeType": "Block", + "src": "2995:27:34", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7222, + "name": "_unpause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3535, + "src": "3005:8:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 7223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3005:10:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7224, + "nodeType": "ExpressionStatement", + "src": "3005:10:34" + } + ] + }, + "documentation": { + "id": 7216, + "nodeType": "StructuredDocumentation", + "src": "2863:77:34", + "text": " @dev Unpauses registering a domain and setting a verifier." + }, + "functionSelector": "3f4ba83a", + "id": 7226, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 7219, + "name": "PAUSER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7139, + "src": "2982:11:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 7220, + "kind": "modifierInvocation", + "modifierName": { + "id": 7218, + "name": "onlyRole", + "nameLocations": [ + "2973:8:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1233, + "src": "2973:8:34" + }, + "nodeType": "ModifierInvocation", + "src": "2973:21:34" + } + ], + "name": "unpause", + "nameLocation": "2954:7:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7217, + "nodeType": "ParameterList", + "parameters": [], + "src": "2961:2:34" + }, + "returnParameters": { + "id": 7221, + "nodeType": "ParameterList", + "parameters": [], + "src": "2995:0:34" + }, + "scope": 7437, + "src": "2945:77:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 7053 + ], + "body": { + "id": 7243, + "nodeType": "Block", + "src": "3218:58:34", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 7238, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7229, + "src": "3247:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7237, + "name": "domainOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7328, + "src": "3235:11:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 7239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3235:23:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 7240, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7231, + "src": "3262:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3235:34:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7236, + "id": 7242, + "nodeType": "Return", + "src": "3228:41:34" + } + ] + }, + "documentation": { + "id": 7227, + "nodeType": "StructuredDocumentation", + "src": "3028:57:34", + "text": " @dev See {ISciRegistry-isDomainOwner}." + }, + "functionSelector": "8023597e", + "id": 7244, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isDomainOwner", + "nameLocation": "3099:13:34", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 7233, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3194:8:34" + }, + "parameters": { + "id": 7232, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7229, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "3130:10:34", + "nodeType": "VariableDeclaration", + "scope": 7244, + "src": "3122:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7228, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3122:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7231, + "mutability": "mutable", + "name": "account", + "nameLocation": "3158:7:34", + "nodeType": "VariableDeclaration", + "scope": 7244, + "src": "3150:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3150:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3112:59:34" + }, + "returnParameters": { + "id": 7236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7235, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7244, + "src": "3212:4:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7234, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3212:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3211:6:34" + }, + "scope": 7437, + "src": "3090:186:34", + "stateMutability": "view", + "virtual": true, + "visibility": "external" + }, + { + "baseFunctions": [ + 7087 + ], + "body": { + "id": 7263, + "nodeType": "Block", + "src": "3476:51:34", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7259, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7247, + "src": "3499:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7260, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7250, + "src": "3511:8:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + ], + "id": 7258, + "name": "_setVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7397, + "src": "3486:12:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IVerifier_$7453_$returns$__$", + "typeString": "function (bytes32,contract IVerifier)" + } + }, + "id": 7261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3486:34:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7262, + "nodeType": "ExpressionStatement", + "src": "3486:34:34" + } + ] + }, + "documentation": { + "id": 7245, + "nodeType": "StructuredDocumentation", + "src": "3282:55:34", + "text": " @dev See {ISciRegistry-setVerifier}." + }, + "functionSelector": "a692b9ef", + "id": 7264, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7253, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "3450:10:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 7254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3450:12:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7255, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7247, + "src": "3464:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 7256, + "kind": "modifierInvocation", + "modifierName": { + "id": 7252, + "name": "onlyDomainOwner", + "nameLocations": [ + "3434:15:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6520, + "src": "3434:15:34" + }, + "nodeType": "ModifierInvocation", + "src": "3434:41:34" + } + ], + "name": "setVerifier", + "nameLocation": "3351:11:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7247, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "3380:10:34", + "nodeType": "VariableDeclaration", + "scope": 7264, + "src": "3372:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7246, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3372:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7250, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "3410:8:34", + "nodeType": "VariableDeclaration", + "scope": 7264, + "src": "3400:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 7249, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7248, + "name": "IVerifier", + "nameLocations": [ + "3400:9:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "3400:9:34" + }, + "referencedDeclaration": 7453, + "src": "3400:9:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + } + ], + "src": "3362:62:34" + }, + "returnParameters": { + "id": 7257, + "nodeType": "ParameterList", + "parameters": [], + "src": "3476:0:34" + }, + "scope": 7437, + "src": "3342:185:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 7070 + ], + "body": { + "id": 7278, + "nodeType": "Block", + "src": "3682:63:34", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 7273, + "name": "domainHashToRecord", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7145, + "src": "3699:18:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7124_storage_$", + "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" + } + }, + "id": 7275, + "indexExpression": { + "id": 7274, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7267, + "src": "3718:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3699:30:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$7124_storage", + "typeString": "struct SciRegistry.Record storage ref" + } + }, + "id": 7276, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3730:8:34", + "memberName": "verifier", + "nodeType": "MemberAccess", + "referencedDeclaration": 7119, + "src": "3699:39:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "functionReturnParameters": 7272, + "id": 7277, + "nodeType": "Return", + "src": "3692:46:34" + } + ] + }, + "documentation": { + "id": 7265, + "nodeType": "StructuredDocumentation", + "src": "3533:58:34", + "text": " @dev See {ISciRegistry-domainVerifier}." + }, + "functionSelector": "5a75199a", + "id": 7279, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "domainVerifier", + "nameLocation": "3605:14:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7267, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "3628:10:34", + "nodeType": "VariableDeclaration", + "scope": 7279, + "src": "3620:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7266, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3620:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3619:20:34" + }, + "returnParameters": { + "id": 7272, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7271, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7279, + "src": "3671:9:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 7270, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7269, + "name": "IVerifier", + "nameLocations": [ + "3671:9:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "3671:9:34" + }, + "referencedDeclaration": 7453, + "src": "3671:9:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + } + ], + "src": "3670:11:34" + }, + "scope": 7437, + "src": "3596:149:34", + "stateMutability": "view", + "virtual": true, + "visibility": "external" + }, + { + "baseFunctions": [ + 7078 + ], + "body": { + "id": 7292, + "nodeType": "Block", + "src": "3912:70:34", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 7287, + "name": "domainHashToRecord", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7145, + "src": "3929:18:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7124_storage_$", + "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" + } + }, + "id": 7289, + "indexExpression": { + "id": 7288, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7282, + "src": "3948:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3929:30:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$7124_storage", + "typeString": "struct SciRegistry.Record storage ref" + } + }, + "id": 7290, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3960:15:34", + "memberName": "verifierSetTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 7123, + "src": "3929:46:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7286, + "id": 7291, + "nodeType": "Return", + "src": "3922:53:34" + } + ] + }, + "documentation": { + "id": 7280, + "nodeType": "StructuredDocumentation", + "src": "3751:65:34", + "text": " @dev See {ISciRegistry-domainVerifierSetTime}." + }, + "functionSelector": "a2a6c0eb", + "id": 7293, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "domainVerifierSetTime", + "nameLocation": "3830:21:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7283, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7282, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "3860:10:34", + "nodeType": "VariableDeclaration", + "scope": 7293, + "src": "3852:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7281, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3852:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3851:20:34" + }, + "returnParameters": { + "id": 7286, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7285, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7293, + "src": "3903:7:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3903:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3902:9:34" + }, + "scope": 7437, + "src": "3821:161:34", + "stateMutability": "view", + "virtual": true, + "visibility": "external" + }, + { + "baseFunctions": [ + 1843 + ], + "body": { + "id": 7312, + "nodeType": "Block", + "src": "4368:42:34", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7308, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7296, + "src": "4389:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7309, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7298, + "src": "4395:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7307, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1970 + ], + "referencedDeclaration": 1970, + "src": "4378:10:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 7310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4378:25:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7311, + "nodeType": "ExpressionStatement", + "src": "4378:25:34" + } + ] + }, + "documentation": { + "id": 7294, + "nodeType": "StructuredDocumentation", + "src": "3988:280:34", + "text": " @dev Grants a role to an account.\n @param role The role to grant.\n @param account The account receiving the role.\n Note: Overrides the OpenZeppelin function to require the\n caller to have the admin role for the role being granted." + }, + "functionSelector": "2f2ff15d", + "id": 7313, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 7303, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7296, + "src": "4361:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7302, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "4348:12:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 7304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4348:18:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 7305, + "kind": "modifierInvocation", + "modifierName": { + "id": 7301, + "name": "onlyRole", + "nameLocations": [ + "4339:8:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1233, + "src": "4339:8:34" + }, + "nodeType": "ModifierInvocation", + "src": "4339:28:34" + } + ], + "name": "grantRole", + "nameLocation": "4282:9:34", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 7300, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4330:8:34" + }, + "parameters": { + "id": 7299, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7296, + "mutability": "mutable", + "name": "role", + "nameLocation": "4300:4:34", + "nodeType": "VariableDeclaration", + "scope": 7313, + "src": "4292:12:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7295, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4292:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7298, + "mutability": "mutable", + "name": "account", + "nameLocation": "4314:7:34", + "nodeType": "VariableDeclaration", + "scope": 7313, + "src": "4306:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4306:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4291:31:34" + }, + "returnParameters": { + "id": 7306, + "nodeType": "ParameterList", + "parameters": [], + "src": "4368:0:34" + }, + "scope": 7437, + "src": "4273:137:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 7061 + ], + "body": { + "id": 7327, + "nodeType": "Block", + "src": "4564:60:34", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 7322, + "name": "domainHashToRecord", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7145, + "src": "4581:18:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7124_storage_$", + "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" + } + }, + "id": 7324, + "indexExpression": { + "id": 7323, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7316, + "src": "4600:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4581:30:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$7124_storage", + "typeString": "struct SciRegistry.Record storage ref" + } + }, + "id": 7325, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4612:5:34", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7116, + "src": "4581:36:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 7321, + "id": 7326, + "nodeType": "Return", + "src": "4574:43:34" + } + ] + }, + "documentation": { + "id": 7314, + "nodeType": "StructuredDocumentation", + "src": "4416:55:34", + "text": " @dev See {ISciRegistry-domainOwner}." + }, + "functionSelector": "d26cdd20", + "id": 7328, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "domainOwner", + "nameLocation": "4485:11:34", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 7318, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4537:8:34" + }, + "parameters": { + "id": 7317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7316, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "4505:10:34", + "nodeType": "VariableDeclaration", + "scope": 7328, + "src": "4497:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7315, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4497:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4496:20:34" + }, + "returnParameters": { + "id": 7321, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7320, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7328, + "src": "4555:7:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7319, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4555:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4554:9:34" + }, + "scope": 7437, + "src": "4476:148:34", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 7353, + "nodeType": "Block", + "src": "5130:115:34", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7342, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7333, + "src": "5156:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7343, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7331, + "src": "5168:5:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7341, + "name": "_setDomainOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7436, + "src": "5140:15:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5140:34:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7345, + "nodeType": "ExpressionStatement", + "src": "5140:34:34" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7347, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "5206:10:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 7348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5206:12:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7349, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7331, + "src": "5220:5:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7350, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7333, + "src": "5227:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7346, + "name": "DomainRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6985, + "src": "5189:16:34", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$", + "typeString": "function (address,address,bytes32)" + } + }, + "id": 7351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5189:49:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7352, + "nodeType": "EmitStatement", + "src": "5184:54:34" + } + ] + }, + "documentation": { + "id": 7329, + "nodeType": "StructuredDocumentation", + "src": "4630:366:34", + "text": " @dev Base function to register a domain.\n @param owner The owner of the domain.\n @param domainHash The namehash of the domain being registered.\n Requirements:\n - the owner must be authorized by the authorizer.\n - The contract must not be paused.\n May emit a {DomainRegistered} event." + }, + "id": 7354, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 7336, + "name": "REGISTRAR_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7134, + "src": "5100:14:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 7337, + "kind": "modifierInvocation", + "modifierName": { + "id": 7335, + "name": "onlyRole", + "nameLocations": [ + "5091:8:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1233, + "src": "5091:8:34" + }, + "nodeType": "ModifierInvocation", + "src": "5091:24:34" + }, + { + "id": 7339, + "kind": "modifierInvocation", + "modifierName": { + "id": 7338, + "name": "whenNotPaused", + "nameLocations": [ + "5116:13:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3461, + "src": "5116:13:34" + }, + "nodeType": "ModifierInvocation", + "src": "5116:13:34" + } + ], + "name": "_registerDomain", + "nameLocation": "5010:15:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7331, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5043:5:34", + "nodeType": "VariableDeclaration", + "scope": 7354, + "src": "5035:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5035:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7333, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "5066:10:34", + "nodeType": "VariableDeclaration", + "scope": 7354, + "src": "5058:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7332, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5058:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5025:57:34" + }, + "returnParameters": { + "id": 7340, + "nodeType": "ParameterList", + "parameters": [], + "src": "5130:0:34" + }, + "scope": 7437, + "src": "5001:244:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 7396, + "nodeType": "Block", + "src": "5593:289:34", + "statements": [ + { + "assignments": [ + 7367 + ], + "declarations": [ + { + "constant": false, + "id": 7367, + "mutability": "mutable", + "name": "oldVerifier", + "nameLocation": "5613:11:34", + "nodeType": "VariableDeclaration", + "scope": 7396, + "src": "5603:21:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 7366, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7365, + "name": "IVerifier", + "nameLocations": [ + "5603:9:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "5603:9:34" + }, + "referencedDeclaration": 7453, + "src": "5603:9:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + } + ], + "id": 7372, + "initialValue": { + "expression": { + "baseExpression": { + "id": 7368, + "name": "domainHashToRecord", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7145, + "src": "5627:18:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7124_storage_$", + "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" + } + }, + "id": 7370, + "indexExpression": { + "id": 7369, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7357, + "src": "5646:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5627:30:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$7124_storage", + "typeString": "struct SciRegistry.Record storage ref" + } + }, + "id": 7371, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5658:8:34", + "memberName": "verifier", + "nodeType": "MemberAccess", + "referencedDeclaration": 7119, + "src": "5627:39:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5603:63:34" + }, + { + "expression": { + "id": 7378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 7373, + "name": "domainHashToRecord", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7145, + "src": "5676:18:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7124_storage_$", + "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" + } + }, + "id": 7375, + "indexExpression": { + "id": 7374, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7357, + "src": "5695:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5676:30:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$7124_storage", + "typeString": "struct SciRegistry.Record storage ref" + } + }, + "id": 7376, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5707:8:34", + "memberName": "verifier", + "nodeType": "MemberAccess", + "referencedDeclaration": 7119, + "src": "5676:39:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 7377, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7360, + "src": "5718:8:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "src": "5676:50:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "id": 7379, + "nodeType": "ExpressionStatement", + "src": "5676:50:34" + }, + { + "expression": { + "id": 7386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 7380, + "name": "domainHashToRecord", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7145, + "src": "5736:18:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7124_storage_$", + "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" + } + }, + "id": 7382, + "indexExpression": { + "id": 7381, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7357, + "src": "5755:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5736:30:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$7124_storage", + "typeString": "struct SciRegistry.Record storage ref" + } + }, + "id": 7383, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5767:15:34", + "memberName": "verifierSetTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 7123, + "src": "5736:46:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 7384, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5785:5:34", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 7385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5791:9:34", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "5785:15:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5736:64:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7387, + "nodeType": "ExpressionStatement", + "src": "5736:64:34" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7389, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "5827:10:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 7390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5827:12:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7391, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7357, + "src": "5841:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7392, + "name": "oldVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7367, + "src": "5853:11:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + { + "id": 7393, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7360, + "src": "5866:8:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + ], + "id": 7388, + "name": "VerifierSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6998, + "src": "5815:11:34", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$7453_$_t_contract$_IVerifier_$7453_$returns$__$", + "typeString": "function (address,bytes32,contract IVerifier,contract IVerifier)" + } + }, + "id": 7394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5815:60:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7395, + "nodeType": "EmitStatement", + "src": "5810:65:34" + } + ] + }, + "documentation": { + "id": 7355, + "nodeType": "StructuredDocumentation", + "src": "5251:253:34", + "text": " @dev Sets the verifier, updates the verifier timestamp and\n emits VerifierSet events.\n All updates to a verifier should be through this function.\n Requirements:\n - The contract must not be paused." + }, + "id": 7397, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 7363, + "kind": "modifierInvocation", + "modifierName": { + "id": 7362, + "name": "whenNotPaused", + "nameLocations": [ + "5579:13:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3461, + "src": "5579:13:34" + }, + "nodeType": "ModifierInvocation", + "src": "5579:13:34" + } + ], + "name": "_setVerifier", + "nameLocation": "5518:12:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7361, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7357, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "5539:10:34", + "nodeType": "VariableDeclaration", + "scope": 7397, + "src": "5531:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7356, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5531:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7360, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "5561:8:34", + "nodeType": "VariableDeclaration", + "scope": 7397, + "src": "5551:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + }, + "typeName": { + "id": 7359, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7358, + "name": "IVerifier", + "nameLocations": [ + "5551:9:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "5551:9:34" + }, + "referencedDeclaration": 7453, + "src": "5551:9:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$7453", + "typeString": "contract IVerifier" + } + }, + "visibility": "internal" + } + ], + "src": "5530:40:34" + }, + "returnParameters": { + "id": 7364, + "nodeType": "ParameterList", + "parameters": [], + "src": "5593:0:34" + }, + "scope": 7437, + "src": "5509:373:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 7435, + "nodeType": "Block", + "src": "6076:263:34", + "statements": [ + { + "assignments": [ + 7406 + ], + "declarations": [ + { + "constant": false, + "id": 7406, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "6094:8:34", + "nodeType": "VariableDeclaration", + "scope": 7435, + "src": "6086:16:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6086:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 7411, + "initialValue": { + "expression": { + "baseExpression": { + "id": 7407, + "name": "domainHashToRecord", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7145, + "src": "6105:18:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7124_storage_$", + "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" + } + }, + "id": 7409, + "indexExpression": { + "id": 7408, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7400, + "src": "6124:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6105:30:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$7124_storage", + "typeString": "struct SciRegistry.Record storage ref" + } + }, + "id": 7410, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6136:5:34", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7116, + "src": "6105:36:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6086:55:34" + }, + { + "expression": { + "id": 7417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 7412, + "name": "domainHashToRecord", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7145, + "src": "6151:18:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7124_storage_$", + "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" + } + }, + "id": 7414, + "indexExpression": { + "id": 7413, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7400, + "src": "6170:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6151:30:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$7124_storage", + "typeString": "struct SciRegistry.Record storage ref" + } + }, + "id": 7415, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6182:5:34", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7116, + "src": "6151:36:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 7416, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7402, + "src": "6190:5:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6151:44:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7418, + "nodeType": "ExpressionStatement", + "src": "6151:44:34" + }, + { + "expression": { + "id": 7425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 7419, + "name": "domainHashToRecord", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7145, + "src": "6205:18:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7124_storage_$", + "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" + } + }, + "id": 7421, + "indexExpression": { + "id": 7420, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7400, + "src": "6224:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6205:30:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Record_$7124_storage", + "typeString": "struct SciRegistry.Record storage ref" + } + }, + "id": 7422, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6236:12:34", + "memberName": "ownerSetTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 7121, + "src": "6205:43:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 7423, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "6251:5:34", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 7424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6257:9:34", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "6251:15:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6205:61:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7426, + "nodeType": "ExpressionStatement", + "src": "6205:61:34" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7428, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "6290:10:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 7429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6290:12:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7430, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7400, + "src": "6304:10:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7431, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7406, + "src": "6316:8:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7432, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7402, + "src": "6326:5:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7427, + "name": "OwnerSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7009, + "src": "6281:8:34", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,bytes32,address,address)" + } + }, + "id": 7433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6281:51:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7434, + "nodeType": "EmitStatement", + "src": "6276:56:34" + } + ] + }, + "documentation": { + "id": 7398, + "nodeType": "StructuredDocumentation", + "src": "5888:115:34", + "text": " @dev Sets the owner of a domain,\n All updates to an owner should be through this function." + }, + "id": 7436, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setDomainOwner", + "nameLocation": "6017:15:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7403, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7400, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "6041:10:34", + "nodeType": "VariableDeclaration", + "scope": 7436, + "src": "6033:18:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7399, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6033:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7402, + "mutability": "mutable", + "name": "owner", + "nameLocation": "6061:5:34", + "nodeType": "VariableDeclaration", + "scope": 7436, + "src": "6053:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6053:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6032:35:34" + }, + "returnParameters": { + "id": 7404, + "nodeType": "ParameterList", + "parameters": [], + "src": "6076:0:34" + }, + "scope": 7437, + "src": "6008:331:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 7438, + "src": "598:5743:34", + "usedErrors": [ + 1498, + 1501, + 2448, + 2451, + 2456, + 3441, + 3444, + 4746, + 6506 + ], + "usedEvents": [ + 1510, + 1519, + 1528, + 2463, + 2466, + 2473, + 2476, + 3433, + 3438, + 6985, + 6998, + 7009 + ] + } + ], + "src": "37:6305:34" + }, + "id": 34 + }, + "contracts/Verifiers/IVerifier.sol": { + "ast": { + "absolutePath": "contracts/Verifiers/IVerifier.sol", + "exportedSymbols": { + "IVerifier": [ + 7453 + ] + }, + "id": 7454, + "license": "AGPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7439, + "literals": [ + "solidity", + "0.8", + ".28" + ], + "nodeType": "PragmaDirective", + "src": "37:23:35" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IVerifier", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 7440, + "nodeType": "StructuredDocumentation", + "src": "62:158:35", + "text": " @title IVerifier\n @dev Required interface of a Verifier compliant contract for the SCI Registry.\n @custom:security-contact security@sci.domains" + }, + "fullyImplemented": false, + "id": 7453, + "linearizedBaseContracts": [ + 7453 + ], + "name": "IVerifier", + "nameLocation": "231:9:35", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 7441, + "nodeType": "StructuredDocumentation", + "src": "247:685:35", + "text": " @dev Verifies if a contract in a specific chain is authorized\n to interact within a domain.\n @param domainHash The domain's namehash.\n @param contractAddress The address of the contract trying to be verified.\n @param chainId The chain where the contract is deployed.\n @return a uint256 representing the time when the contract was verified.\n If the contract is not verified, it returns 0.\n Note: The return timestamp is a best effor approach to provide the time when the contract\n was verified. For verifiers that can't know when the contract was verified they could\n return when the verifier was deployed." + }, + "functionSelector": "046852d0", + "id": 7452, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isVerified", + "nameLocation": "946:10:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7443, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "974:10:35", + "nodeType": "VariableDeclaration", + "scope": 7452, + "src": "966:18:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7442, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "966:7:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7445, + "mutability": "mutable", + "name": "contractAddress", + "nameLocation": "1002:15:35", + "nodeType": "VariableDeclaration", + "scope": 7452, + "src": "994:23:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "994:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7447, + "mutability": "mutable", + "name": "chainId", + "nameLocation": "1035:7:35", + "nodeType": "VariableDeclaration", + "scope": 7452, + "src": "1027:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7446, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1027:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "956:92:35" + }, + "returnParameters": { + "id": 7451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7450, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7452, + "src": "1072:7:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7449, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1072:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1071:9:35" + }, + "scope": 7453, + "src": "937:144:35", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 7454, + "src": "221:862:35", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "37:1047:35" + }, + "id": 35 + }, + "contracts/Verifiers/PublicListVerifier.sol": { + "ast": { + "absolutePath": "contracts/Verifiers/PublicListVerifier.sol", + "exportedSymbols": { + "Context": [ + 3419 + ], + "DomainManager": [ + 6556 + ], + "IVerifier": [ + 7453 + ], + "PublicListVerifier": [ + 7722 + ] + }, + "id": 7723, + "license": "AGPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7455, + "literals": [ + "solidity", + "0.8", + ".28" + ], + "nodeType": "PragmaDirective", + "src": "37:23:36" + }, + { + "absolutePath": "contracts/Verifiers/IVerifier.sol", + "file": "./IVerifier.sol", + "id": 7457, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7723, + "sourceUnit": 7454, + "src": "62:42:36", + "symbolAliases": [ + { + "foreign": { + "id": 7456, + "name": "IVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7453, + "src": "70:9:36", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/DomainMangager/DomainManager.sol", + "file": "../DomainMangager/DomainManager.sol", + "id": 7459, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7723, + "sourceUnit": 6557, + "src": "105:66:36", + "symbolAliases": [ + { + "foreign": { + "id": 7458, + "name": "DomainManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6556, + "src": "113:13:36", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "@openzeppelin/contracts/utils/Context.sol", + "id": 7461, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7723, + "sourceUnit": 3420, + "src": "172:66:36", + "symbolAliases": [ + { + "foreign": { + "id": 7460, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3419, + "src": "180:7:36", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 7463, + "name": "IVerifier", + "nameLocations": [ + "657:9:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7453, + "src": "657:9:36" + }, + "id": 7464, + "nodeType": "InheritanceSpecifier", + "src": "657:9:36" + }, + { + "baseName": { + "id": 7465, + "name": "Context", + "nameLocations": [ + "668:7:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3419, + "src": "668:7:36" + }, + "id": 7466, + "nodeType": "InheritanceSpecifier", + "src": "668:7:36" + }, + { + "baseName": { + "id": 7467, + "name": "DomainManager", + "nameLocations": [ + "677:13:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6556, + "src": "677:13:36" + }, + "id": 7468, + "nodeType": "InheritanceSpecifier", + "src": "677:13:36" + } + ], + "canonicalName": "PublicListVerifier", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 7462, + "nodeType": "StructuredDocumentation", + "src": "240:385:36", + "text": " @title PublicListVerifier\n @dev This contract implements the Verifier interface.\n Domain owners can add or remove addresses that can interact within their domain.\n If the owner of the domain sets a contract address with MAX_INT as chain id then it assumes\n this contract is verified for all chains for that domain.\n @custom:security-contact security@sci.domains" + }, + "fullyImplemented": true, + "id": 7722, + "linearizedBaseContracts": [ + 7722, + 6556, + 3419, + 7453 + ], + "name": "PublicListVerifier", + "nameLocation": "635:18:36", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 7475, + "mutability": "constant", + "name": "MAX_INT", + "nameLocation": "722:7:36", + "nodeType": "VariableDeclaration", + "scope": 7722, + "src": "697:47:36", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7469, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "697:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9935" + }, + "id": 7474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9936" + }, + "id": 7472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 7470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "732:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "323536", + "id": 7471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "737:3:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "value": "256" + }, + "src": "732:8:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9936" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 7473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "743:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "732:12:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9935" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "79fb477a", + "id": 7483, + "mutability": "mutable", + "name": "verifiedContracts", + "nameLocation": "953:17:36", + "nodeType": "VariableDeclaration", + "scope": 7722, + "src": "817:153:36", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))" + }, + "typeName": { + "id": 7482, + "keyName": "domainHash", + "keyNameLocation": "833:10:36", + "keyType": { + "id": 7476, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "825:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "817:120:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 7481, + "keyName": "contractAddress", + "keyNameLocation": "863:15:36", + "keyType": { + "id": 7477, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "855:7:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "847:89:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 7480, + "keyName": "chainId", + "keyNameLocation": "898:7:36", + "keyType": { + "id": 7478, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "890:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "882:53:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueName": "registerTimestamp", + "valueNameLocation": "917:17:36", + "valueType": { + "id": 7479, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "909:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + } + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 7484, + "nodeType": "StructuredDocumentation", + "src": "977:107:36", + "text": " @dev Emitted when the `msgSender` removes an address to a `domainHash` for a `chainId`." + }, + "eventSelector": "36be184145fbd476ffe0597f987f89d7490b926e334512a42de54749eee25e75", + "id": 7494, + "name": "AddressRemoved", + "nameLocation": "1095:14:36", + "nodeType": "EventDefinition", + "parameters": { + "id": 7493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7486, + "indexed": true, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "1135:10:36", + "nodeType": "VariableDeclaration", + "scope": 7494, + "src": "1119:26:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1119:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7488, + "indexed": true, + "mutability": "mutable", + "name": "chainId", + "nameLocation": "1171:7:36", + "nodeType": "VariableDeclaration", + "scope": 7494, + "src": "1155:23:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7487, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1155:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7490, + "indexed": true, + "mutability": "mutable", + "name": "contractAddress", + "nameLocation": "1204:15:36", + "nodeType": "VariableDeclaration", + "scope": 7494, + "src": "1188:31:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7489, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1188:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7492, + "indexed": false, + "mutability": "mutable", + "name": "msgSender", + "nameLocation": "1237:9:36", + "nodeType": "VariableDeclaration", + "scope": 7494, + "src": "1229:17:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7491, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1229:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1109:143:36" + }, + "src": "1089:164:36" + }, + { + "anonymous": false, + "documentation": { + "id": 7495, + "nodeType": "StructuredDocumentation", + "src": "1259:104:36", + "text": " @dev Emitted when the `msgSender` adds an address to a `domainHash` for a `chainId`." + }, + "eventSelector": "c177490b924686771eb8a2b77bee53e5913e624c90b60207d396f81cfe6e7cd0", + "id": 7505, + "name": "AddressAdded", + "nameLocation": "1374:12:36", + "nodeType": "EventDefinition", + "parameters": { + "id": 7504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7497, + "indexed": true, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "1412:10:36", + "nodeType": "VariableDeclaration", + "scope": 7505, + "src": "1396:26:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7496, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1396:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7499, + "indexed": true, + "mutability": "mutable", + "name": "chainId", + "nameLocation": "1448:7:36", + "nodeType": "VariableDeclaration", + "scope": 7505, + "src": "1432:23:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7498, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1432:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7501, + "indexed": true, + "mutability": "mutable", + "name": "contractAddress", + "nameLocation": "1481:15:36", + "nodeType": "VariableDeclaration", + "scope": 7505, + "src": "1465:31:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7500, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1465:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7503, + "indexed": false, + "mutability": "mutable", + "name": "msgSender", + "nameLocation": "1514:9:36", + "nodeType": "VariableDeclaration", + "scope": 7505, + "src": "1506:17:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7502, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1506:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1386:143:36" + }, + "src": "1368:162:36" + }, + { + "body": { + "id": 7513, + "nodeType": "Block", + "src": "1592:2:36", + "statements": [] + }, + "id": 7514, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 7510, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7507, + "src": "1581:9:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 7511, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 7509, + "name": "DomainManager", + "nameLocations": [ + "1567:13:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6556, + "src": "1567:13:36" + }, + "nodeType": "ModifierInvocation", + "src": "1567:24:36" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7507, + "mutability": "mutable", + "name": "_registry", + "nameLocation": "1556:9:36", + "nodeType": "VariableDeclaration", + "scope": 7514, + "src": "1548:17:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1548:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1547:19:36" + }, + "returnParameters": { + "id": 7512, + "nodeType": "ParameterList", + "parameters": [], + "src": "1592:0:36" + }, + "scope": 7722, + "src": "1536:58:36", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7591, + "nodeType": "Block", + "src": "1966:498:36", + "statements": [ + { + "body": { + "id": 7589, + "nodeType": "Block", + "src": "2024:434:36", + "statements": [ + { + "body": { + "id": 7583, + "nodeType": "Block", + "src": "2080:309:36", + "statements": [ + { + "expression": { + "id": 7563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 7548, + "name": "verifiedContracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7483, + "src": "2098:17:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))" + } + }, + "id": 7558, + "indexExpression": { + "id": 7549, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7517, + "src": "2116:10:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2098:29:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 7559, + "indexExpression": { + "baseExpression": { + "id": 7550, + "name": "contractAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7520, + "src": "2128:17:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 7552, + "indexExpression": { + "id": 7551, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7533, + "src": "2146:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2128:20:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2098:51:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 7560, + "indexExpression": { + "baseExpression": { + "baseExpression": { + "id": 7553, + "name": "chainIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7524, + "src": "2150:8:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", + "typeString": "uint256[] calldata[] calldata" + } + }, + "id": 7555, + "indexExpression": { + "id": 7554, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7533, + "src": "2159:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2150:11:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 7557, + "indexExpression": { + "id": 7556, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7540, + "src": "2162:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2150:14:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2098:67:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 7561, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "2168:5:36", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 7562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2195:9:36", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "2168:36:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2098:106:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7564, + "nodeType": "ExpressionStatement", + "src": "2098:106:36" + }, + { + "eventCall": { + "arguments": [ + { + "id": 7566, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7517, + "src": "2240:10:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "baseExpression": { + "baseExpression": { + "id": 7567, + "name": "chainIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7524, + "src": "2252:8:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", + "typeString": "uint256[] calldata[] calldata" + } + }, + "id": 7569, + "indexExpression": { + "id": 7568, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7533, + "src": "2261:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2252:11:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 7571, + "indexExpression": { + "id": 7570, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7540, + "src": "2264:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2252:14:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 7572, + "name": "contractAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7520, + "src": "2268:17:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 7574, + "indexExpression": { + "id": 7573, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7533, + "src": "2286:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2268:20:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7575, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "2290:10:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 7576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2290:12:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7565, + "name": "AddressAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7505, + "src": "2227:12:36", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,uint256,address,address)" + } + }, + "id": 7577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2227:76:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7578, + "nodeType": "EmitStatement", + "src": "2222:81:36" + }, + { + "id": 7582, + "nodeType": "UncheckedBlock", + "src": "2321:54:36", + "statements": [ + { + "expression": { + "id": 7580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "2353:3:36", + "subExpression": { + "id": 7579, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7540, + "src": "2355:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7581, + "nodeType": "ExpressionStatement", + "src": "2353:3:36" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7542, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7540, + "src": "2054:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "baseExpression": { + "id": 7543, + "name": "chainIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7524, + "src": "2058:8:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", + "typeString": "uint256[] calldata[] calldata" + } + }, + "id": 7545, + "indexExpression": { + "id": 7544, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7533, + "src": "2067:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2058:11:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 7546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2070:6:36", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2058:18:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2054:22:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7584, + "initializationExpression": { + "assignments": [ + 7540 + ], + "declarations": [ + { + "constant": false, + "id": 7540, + "mutability": "mutable", + "name": "j", + "nameLocation": "2051:1:36", + "nodeType": "VariableDeclaration", + "scope": 7584, + "src": "2043:9:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7539, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2043:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7541, + "nodeType": "VariableDeclarationStatement", + "src": "2043:9:36" + }, + "isSimpleCounterLoop": false, + "nodeType": "ForStatement", + "src": "2038:351:36" + }, + { + "id": 7588, + "nodeType": "UncheckedBlock", + "src": "2402:46:36", + "statements": [ + { + "expression": { + "id": 7586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "2430:3:36", + "subExpression": { + "id": 7585, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7533, + "src": "2432:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7587, + "nodeType": "ExpressionStatement", + "src": "2430:3:36" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7535, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7533, + "src": "1992:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 7536, + "name": "contractAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7520, + "src": "1996:17:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 7537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2014:6:36", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1996:24:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1992:28:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7590, + "initializationExpression": { + "assignments": [ + 7533 + ], + "declarations": [ + { + "constant": false, + "id": 7533, + "mutability": "mutable", + "name": "i", + "nameLocation": "1989:1:36", + "nodeType": "VariableDeclaration", + "scope": 7590, + "src": "1981:9:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1981:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7534, + "nodeType": "VariableDeclarationStatement", + "src": "1981:9:36" + }, + "isSimpleCounterLoop": false, + "nodeType": "ForStatement", + "src": "1976:482:36" + } + ] + }, + "documentation": { + "id": 7515, + "nodeType": "StructuredDocumentation", + "src": "1600:169:36", + "text": " @dev Adds multiple addresses in multiple chains to the domain.\n Requirements:\n - The caller must be the owner of the domain." + }, + "functionSelector": "0f59a498", + "id": 7592, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7527, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "1940:10:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 7528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1940:12:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7529, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7517, + "src": "1954:10:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 7530, + "kind": "modifierInvocation", + "modifierName": { + "id": 7526, + "name": "onlyDomainOwner", + "nameLocations": [ + "1924:15:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6520, + "src": "1924:15:36" + }, + "nodeType": "ModifierInvocation", + "src": "1924:41:36" + } + ], + "name": "addAddresses", + "nameLocation": "1783:12:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7517, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "1813:10:36", + "nodeType": "VariableDeclaration", + "scope": 7592, + "src": "1805:18:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7516, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1805:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7520, + "mutability": "mutable", + "name": "contractAddresses", + "nameLocation": "1852:17:36", + "nodeType": "VariableDeclaration", + "scope": 7592, + "src": "1833:36:36", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 7518, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1833:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7519, + "nodeType": "ArrayTypeName", + "src": "1833:9:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7524, + "mutability": "mutable", + "name": "chainIds", + "nameLocation": "1900:8:36", + "nodeType": "VariableDeclaration", + "scope": 7592, + "src": "1879:29:36", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", + "typeString": "uint256[][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 7521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1879:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7522, + "nodeType": "ArrayTypeName", + "src": "1879:9:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "id": 7523, + "nodeType": "ArrayTypeName", + "src": "1879:11:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr", + "typeString": "uint256[][]" + } + }, + "visibility": "internal" + } + ], + "src": "1795:119:36" + }, + "returnParameters": { + "id": 7531, + "nodeType": "ParameterList", + "parameters": [], + "src": "1966:0:36" + }, + "scope": 7722, + "src": "1774:690:36", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7671, + "nodeType": "Block", + "src": "2842:468:36", + "statements": [ + { + "body": { + "id": 7669, + "nodeType": "Block", + "src": "2900:404:36", + "statements": [ + { + "body": { + "id": 7663, + "nodeType": "Block", + "src": "2959:276:36", + "statements": [ + { + "expression": { + "id": 7643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 7629, + "name": "verifiedContracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7483, + "src": "2977:17:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))" + } + }, + "id": 7639, + "indexExpression": { + "id": 7630, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7595, + "src": "2995:10:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2977:29:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 7640, + "indexExpression": { + "baseExpression": { + "id": 7631, + "name": "contractAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7598, + "src": "3007:17:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 7633, + "indexExpression": { + "id": 7632, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7611, + "src": "3025:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3007:20:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2977:51:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 7641, + "indexExpression": { + "baseExpression": { + "baseExpression": { + "id": 7634, + "name": "chainIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "3029:8:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", + "typeString": "uint256[] calldata[] calldata" + } + }, + "id": 7636, + "indexExpression": { + "id": 7635, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7611, + "src": "3038:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3029:11:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 7638, + "indexExpression": { + "id": 7637, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7618, + "src": "3041:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3029:14:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2977:67:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 7642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3047:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2977:71:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7644, + "nodeType": "ExpressionStatement", + "src": "2977:71:36" + }, + { + "eventCall": { + "arguments": [ + { + "id": 7646, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7595, + "src": "3086:10:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "baseExpression": { + "baseExpression": { + "id": 7647, + "name": "chainIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "3098:8:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", + "typeString": "uint256[] calldata[] calldata" + } + }, + "id": 7649, + "indexExpression": { + "id": 7648, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7611, + "src": "3107:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3098:11:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 7651, + "indexExpression": { + "id": 7650, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7618, + "src": "3110:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3098:14:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 7652, + "name": "contractAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7598, + "src": "3114:17:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 7654, + "indexExpression": { + "id": 7653, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7611, + "src": "3132:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3114:20:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7655, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "3136:10:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 7656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3136:12:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7645, + "name": "AddressRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7494, + "src": "3071:14:36", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,uint256,address,address)" + } + }, + "id": 7657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3071:78:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7658, + "nodeType": "EmitStatement", + "src": "3066:83:36" + }, + { + "id": 7662, + "nodeType": "UncheckedBlock", + "src": "3167:54:36", + "statements": [ + { + "expression": { + "id": 7660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "3199:3:36", + "subExpression": { + "id": 7659, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7618, + "src": "3201:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7661, + "nodeType": "ExpressionStatement", + "src": "3199:3:36" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7620, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7618, + "src": "2930:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "baseExpression": { + "id": 7621, + "name": "chainIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "2934:8:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", + "typeString": "uint256[] calldata[] calldata" + } + }, + "id": 7623, + "indexExpression": { + "id": 7622, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7611, + "src": "2943:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2934:11:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 7624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2946:6:36", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2934:18:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2930:22:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7664, + "initializationExpression": { + "assignments": [ + 7618 + ], + "declarations": [ + { + "constant": false, + "id": 7618, + "mutability": "mutable", + "name": "j", + "nameLocation": "2927:1:36", + "nodeType": "VariableDeclaration", + "scope": 7664, + "src": "2919:9:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2919:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7619, + "nodeType": "VariableDeclarationStatement", + "src": "2919:9:36" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 7627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "2954:3:36", + "subExpression": { + "id": 7626, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7618, + "src": "2956:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7628, + "nodeType": "ExpressionStatement", + "src": "2954:3:36" + }, + "nodeType": "ForStatement", + "src": "2914:321:36" + }, + { + "id": 7668, + "nodeType": "UncheckedBlock", + "src": "3248:46:36", + "statements": [ + { + "expression": { + "id": 7666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "3276:3:36", + "subExpression": { + "id": 7665, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7611, + "src": "3278:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7667, + "nodeType": "ExpressionStatement", + "src": "3276:3:36" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7613, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7611, + "src": "2868:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 7614, + "name": "contractAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7598, + "src": "2872:17:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 7615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2890:6:36", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2872:24:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2868:28:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7670, + "initializationExpression": { + "assignments": [ + 7611 + ], + "declarations": [ + { + "constant": false, + "id": 7611, + "mutability": "mutable", + "name": "i", + "nameLocation": "2865:1:36", + "nodeType": "VariableDeclaration", + "scope": 7670, + "src": "2857:9:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7610, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2857:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7612, + "nodeType": "VariableDeclarationStatement", + "src": "2857:9:36" + }, + "isSimpleCounterLoop": false, + "nodeType": "ForStatement", + "src": "2852:452:36" + } + ] + }, + "documentation": { + "id": 7593, + "nodeType": "StructuredDocumentation", + "src": "2470:172:36", + "text": " @dev Removes multiple addresses in multiple chains to the domain.\n Requirements:\n - The caller must be the owner of the domain." + }, + "functionSelector": "82ef31d9", + "id": 7672, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7605, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3401, + "src": "2816:10:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 7606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2816:12:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7607, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7595, + "src": "2830:10:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 7608, + "kind": "modifierInvocation", + "modifierName": { + "id": 7604, + "name": "onlyDomainOwner", + "nameLocations": [ + "2800:15:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6520, + "src": "2800:15:36" + }, + "nodeType": "ModifierInvocation", + "src": "2800:41:36" + } + ], + "name": "removeAddresses", + "nameLocation": "2656:15:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7595, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "2689:10:36", + "nodeType": "VariableDeclaration", + "scope": 7672, + "src": "2681:18:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7594, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2681:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7598, + "mutability": "mutable", + "name": "contractAddresses", + "nameLocation": "2728:17:36", + "nodeType": "VariableDeclaration", + "scope": 7672, + "src": "2709:36:36", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 7596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2709:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7597, + "nodeType": "ArrayTypeName", + "src": "2709:9:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7602, + "mutability": "mutable", + "name": "chainIds", + "nameLocation": "2776:8:36", + "nodeType": "VariableDeclaration", + "scope": 7672, + "src": "2755:29:36", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", + "typeString": "uint256[][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 7599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2755:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7600, + "nodeType": "ArrayTypeName", + "src": "2755:9:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "id": 7601, + "nodeType": "ArrayTypeName", + "src": "2755:11:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr", + "typeString": "uint256[][]" + } + }, + "visibility": "internal" + } + ], + "src": "2671:119:36" + }, + "returnParameters": { + "id": 7609, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:36" + }, + "scope": 7722, + "src": "2647:663:36", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 7452 + ], + "body": { + "id": 7720, + "nodeType": "Block", + "src": "3516:413:36", + "statements": [ + { + "assignments": [ + 7685 + ], + "declarations": [ + { + "constant": false, + "id": 7685, + "mutability": "mutable", + "name": "verifiedContract", + "nameLocation": "3534:16:36", + "nodeType": "VariableDeclaration", + "scope": 7720, + "src": "3526:24:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3526:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7693, + "initialValue": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 7686, + "name": "verifiedContracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7483, + "src": "3553:17:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))" + } + }, + "id": 7688, + "indexExpression": { + "id": 7687, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7675, + "src": "3571:10:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3553:29:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 7690, + "indexExpression": { + "id": 7689, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7677, + "src": "3583:15:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3553:46:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 7692, + "indexExpression": { + "id": 7691, + "name": "chainId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7679, + "src": "3600:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3553:55:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3526:82:36" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7694, + "name": "verifiedContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7685, + "src": "3623:16:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 7695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3643:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3623:21:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7700, + "nodeType": "IfStatement", + "src": "3619:75:36", + "trueBody": { + "id": 7699, + "nodeType": "Block", + "src": "3646:48:36", + "statements": [ + { + "expression": { + "id": 7697, + "name": "verifiedContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7685, + "src": "3667:16:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7683, + "id": 7698, + "nodeType": "Return", + "src": "3660:23:36" + } + ] + } + }, + { + "expression": { + "id": 7709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7701, + "name": "verifiedContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7685, + "src": "3704:16:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "baseExpression": { + "baseExpression": { + "id": 7702, + "name": "verifiedContracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7483, + "src": "3723:17:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", + "typeString": "mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))" + } + }, + "id": 7704, + "indexExpression": { + "id": 7703, + "name": "domainHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7675, + "src": "3741:10:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3723:29:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 7706, + "indexExpression": { + "id": 7705, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7677, + "src": "3753:15:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3723:46:36", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 7708, + "indexExpression": { + "id": 7707, + "name": "MAX_INT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7475, + "src": "3770:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3723:55:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3704:74:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7710, + "nodeType": "ExpressionStatement", + "src": "3704:74:36" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7711, + "name": "verifiedContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7685, + "src": "3792:16:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 7712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3812:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3792:21:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7717, + "nodeType": "IfStatement", + "src": "3788:75:36", + "trueBody": { + "id": 7716, + "nodeType": "Block", + "src": "3815:48:36", + "statements": [ + { + "expression": { + "id": 7714, + "name": "verifiedContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7685, + "src": "3836:16:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7683, + "id": 7715, + "nodeType": "Return", + "src": "3829:23:36" + } + ] + } + }, + { + "expression": { + "hexValue": "30", + "id": 7718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3921:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 7683, + "id": 7719, + "nodeType": "Return", + "src": "3914:8:36" + } + ] + }, + "documentation": { + "id": 7673, + "nodeType": "StructuredDocumentation", + "src": "3316:51:36", + "text": " @dev See {IVerifier-isVerified}." + }, + "functionSelector": "046852d0", + "id": 7721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isVerified", + "nameLocation": "3381:10:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7675, + "mutability": "mutable", + "name": "domainHash", + "nameLocation": "3409:10:36", + "nodeType": "VariableDeclaration", + "scope": 7721, + "src": "3401:18:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7674, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3401:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7677, + "mutability": "mutable", + "name": "contractAddress", + "nameLocation": "3437:15:36", + "nodeType": "VariableDeclaration", + "scope": 7721, + "src": "3429:23:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3429:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7679, + "mutability": "mutable", + "name": "chainId", + "nameLocation": "3470:7:36", + "nodeType": "VariableDeclaration", + "scope": 7721, + "src": "3462:15:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3462:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3391:92:36" + }, + "returnParameters": { + "id": 7683, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7682, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7721, + "src": "3507:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7681, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3507:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3506:9:36" + }, + "scope": 7722, + "src": "3372:557:36", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 7723, + "src": "626:3305:36", + "usedErrors": [ + 6506 + ], + "usedEvents": [ + 7494, + 7505 + ] + } + ], + "src": "37:3895:36" + }, + "id": 36 + } + }, + "contracts": { + "@ensdomains/ens-contracts/contracts/registry/ENS.sol": { + "ENS": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "label", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "NewOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "resolver", + "type": "address" + } + ], + "name": "NewResolver", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "ttl", + "type": "uint64" + } + ], + "name": "NewTTL", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "recordExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "resolver", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "setOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "resolver", + "type": "address" + }, + { + "internalType": "uint64", + "name": "ttl", + "type": "uint64" + } + ], + "name": "setRecord", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "resolver", + "type": "address" + } + ], + "name": "setResolver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "label", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "setSubnodeOwner", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "label", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "resolver", + "type": "address" + }, + { + "internalType": "uint64", + "name": "ttl", + "type": "uint64" + } + ], + "name": "setSubnodeRecord", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "uint64", + "name": "ttl", + "type": "uint64" + } + ], + "name": "setTTL", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "ttl", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "isApprovedForAll(address,address)": "e985e9c5", + "owner(bytes32)": "02571be3", + "recordExists(bytes32)": "f79fe538", + "resolver(bytes32)": "0178b8bf", + "setApprovalForAll(address,bool)": "a22cb465", + "setOwner(bytes32,address)": "5b0fc9c3", + "setRecord(bytes32,address,address,uint64)": "cf408823", + "setResolver(bytes32,address)": "1896f70a", + "setSubnodeOwner(bytes32,bytes32,address)": "06ab5923", + "setSubnodeRecord(bytes32,bytes32,address,address,uint64)": "5ef2c7f0", + "setTTL(bytes32,uint64)": "14ab9038", + "ttl(bytes32)": "16a25cbd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"NewResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"NewTTL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"recordExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setSubnodeOwner\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setSubnodeRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@ensdomains/ens-contracts/contracts/registry/ENS.sol\":\"ENS\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@ensdomains/ens-contracts/contracts/registry/ENS.sol\":{\"keccak256\":\"0x7cb1158c7d268b63de1468e28e2711b28d686e2628ddb22da2149cd93ddeafda\",\"urls\":[\"bzz-raw://a7018309acca24b10ea1235b1c27828f29f2ddfabb653a794639baf620dc2314\",\"dweb:/ipfs/QmakFQT5NFvGs3g8xxwtgtWdddq28Wtm6MjNSpJNhV1YpR\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol": { + "ENSRegistry": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "label", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "NewOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "resolver", + "type": "address" + } + ], + "name": "NewResolver", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "ttl", + "type": "uint64" + } + ], + "name": "NewTTL", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "recordExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "resolver", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "setOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "resolver", + "type": "address" + }, + { + "internalType": "uint64", + "name": "ttl", + "type": "uint64" + } + ], + "name": "setRecord", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "resolver", + "type": "address" + } + ], + "name": "setResolver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "label", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "setSubnodeOwner", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "label", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "resolver", + "type": "address" + }, + { + "internalType": "uint64", + "name": "ttl", + "type": "uint64" + } + ], + "name": "setSubnodeRecord", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "uint64", + "name": "ttl", + "type": "uint64" + } + ], + "name": "setTTL", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "ttl", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_200": { + "entryPoint": null, + "id": 200, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [], + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b50336000808060001b815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061123d806100766000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146101b15780635ef2c7f0146101cd578063a22cb465146101e9578063cf40882314610205578063e985e9c514610221578063f79fe53814610251576100b4565b80630178b8bf146100b957806302571be3146100e957806306ab59231461011957806314ab90381461014957806316a25cbd146101655780631896f70a14610195575b600080fd5b6100d360048036038101906100ce9190610dda565b610281565b6040516100e09190610e48565b60405180910390f35b61010360048036038101906100fe9190610dda565b6102c0565b6040516101109190610e48565b60405180910390f35b610133600480360381019061012e9190610e8f565b610342565b6040516101409190610ef1565b60405180910390f35b610163600480360381019061015e9190610f4c565b6104c5565b005b61017f600480360381019061017a9190610dda565b610643565b60405161018c9190610f9b565b60405180910390f35b6101af60048036038101906101aa9190610fb6565b610676565b005b6101cb60048036038101906101c69190610fb6565b61080c565b005b6101e760048036038101906101e29190610ff6565b610958565b005b61020360048036038101906101fe91906110a9565b61097a565b005b61021f600480360381019061021a91906110e9565b610a77565b005b61023b60048036038101906102369190611150565b610a92565b604051610248919061119f565b60405180910390f35b61026b60048036038101906102669190610dda565b610b26565b604051610278919061119f565b60405180910390f35b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361033857600091505061033d565b809150505b919050565b600083600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061043f5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61044857600080fd5b6000868660405160200161045d9291906111db565b60405160208183030381529060405280519060200120905061047f8186610b94565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82876040516104b09190610e48565b60405180910390a38093505050509392505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806105c05750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6105c957600080fd5b837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68846040516105f99190610f9b565b60405180910390a28260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050565b600080600083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806107715750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61077a57600080fd5b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0846040516107aa9190610e48565b60405180910390a28260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806109075750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61091057600080fd5b61091a8484610b94565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2668460405161094a9190610e48565b60405180910390a250505050565b6000610965868686610342565b9050610972818484610bec565b505050505050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a6b919061119f565b60405180910390a35050565b610a81848461080c565b610a8c848383610bec565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b8060008084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ce1578160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051610cd89190610e48565b60405180910390a25b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614610d9a578060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051610d919190610f9b565b60405180910390a25b505050565b600080fd5b6000819050919050565b610db781610da4565b8114610dc257600080fd5b50565b600081359050610dd481610dae565b92915050565b600060208284031215610df057610def610d9f565b5b6000610dfe84828501610dc5565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e3282610e07565b9050919050565b610e4281610e27565b82525050565b6000602082019050610e5d6000830184610e39565b92915050565b610e6c81610e27565b8114610e7757600080fd5b50565b600081359050610e8981610e63565b92915050565b600080600060608486031215610ea857610ea7610d9f565b5b6000610eb686828701610dc5565b9350506020610ec786828701610dc5565b9250506040610ed886828701610e7a565b9150509250925092565b610eeb81610da4565b82525050565b6000602082019050610f066000830184610ee2565b92915050565b600067ffffffffffffffff82169050919050565b610f2981610f0c565b8114610f3457600080fd5b50565b600081359050610f4681610f20565b92915050565b60008060408385031215610f6357610f62610d9f565b5b6000610f7185828601610dc5565b9250506020610f8285828601610f37565b9150509250929050565b610f9581610f0c565b82525050565b6000602082019050610fb06000830184610f8c565b92915050565b60008060408385031215610fcd57610fcc610d9f565b5b6000610fdb85828601610dc5565b9250506020610fec85828601610e7a565b9150509250929050565b600080600080600060a0868803121561101257611011610d9f565b5b600061102088828901610dc5565b955050602061103188828901610dc5565b945050604061104288828901610e7a565b935050606061105388828901610e7a565b925050608061106488828901610f37565b9150509295509295909350565b60008115159050919050565b61108681611071565b811461109157600080fd5b50565b6000813590506110a38161107d565b92915050565b600080604083850312156110c0576110bf610d9f565b5b60006110ce85828601610e7a565b92505060206110df85828601611094565b9150509250929050565b6000806000806080858703121561110357611102610d9f565b5b600061111187828801610dc5565b945050602061112287828801610e7a565b935050604061113387828801610e7a565b925050606061114487828801610f37565b91505092959194509250565b6000806040838503121561116757611166610d9f565b5b600061117585828601610e7a565b925050602061118685828601610e7a565b9150509250929050565b61119981611071565b82525050565b60006020820190506111b46000830184611190565b92915050565b6000819050919050565b6111d56111d082610da4565b6111ba565b82525050565b60006111e782856111c4565b6020820191506111f782846111c4565b602082019150819050939250505056fea26469706673582212205c28003d9ca2f724222333aa49478b080394e9874183ab5f04037012b21d32b864736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x123D DUP1 PUSH2 0x76 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5B0FC9C3 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x5B0FC9C3 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0x5EF2C7F0 EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0xCF408823 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0xF79FE538 EQ PUSH2 0x251 JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x178B8BF EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x2571BE3 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x6AB5923 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x14AB9038 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0x16A25CBD EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x1896F70A EQ PUSH2 0x195 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCE SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0x281 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE0 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x103 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFE SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x110 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x133 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12E SWAP2 SWAP1 PUSH2 0xE8F JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x140 SWAP2 SWAP1 PUSH2 0xEF1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x163 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15E SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x4C5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17A SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0xFB6 JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0xFB6 JUMP JUMPDEST PUSH2 0x80C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0xFF6 JUMP JUMPDEST PUSH2 0x958 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FE SWAP2 SWAP1 PUSH2 0x10A9 JUMP JUMPDEST PUSH2 0x97A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x21F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21A SWAP2 SWAP1 PUSH2 0x10E9 JUMP JUMPDEST PUSH2 0xA77 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x236 SWAP2 SWAP1 PUSH2 0x1150 JUMP JUMPDEST PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x266 SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0xB26 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x338 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x33D JUMP JUMPDEST DUP1 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x43F JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x45D SWAP3 SWAP2 SWAP1 PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x47F DUP2 DUP7 PUSH2 0xB94 JUMP JUMPDEST DUP6 DUP8 PUSH32 0xCE0457FE73731F824CC272376169235128C118B49D344817417C6D108D155E82 DUP8 PUSH1 0x40 MLOAD PUSH2 0x4B0 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x5C0 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH32 0x1D4F9BBFC9CAB89D66E1A1562F2233CCBF1308CB4F63DE2EAD5787ADDDB8FA68 DUP5 PUSH1 0x40 MLOAD PUSH2 0x5F9 SWAP2 SWAP1 PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x771 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x77A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH32 0x335721B01866DC23FBEE8B6B2C7B1E14D6F05C28CD35A2C934239F94095602A0 DUP5 PUSH1 0x40 MLOAD PUSH2 0x7AA SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x907 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x910 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91A DUP5 DUP5 PUSH2 0xB94 JUMP JUMPDEST DUP4 PUSH32 0xD4735D920B0F87494915F556DD9B54C8F309026070CAEA5C737245152564D266 DUP5 PUSH1 0x40 MLOAD PUSH2 0x94A SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x965 DUP7 DUP7 DUP7 PUSH2 0x342 JUMP JUMPDEST SWAP1 POP PUSH2 0x972 DUP2 DUP5 DUP5 PUSH2 0xBEC JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0xA6B SWAP2 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xA81 DUP5 DUP5 PUSH2 0x80C JUMP JUMPDEST PUSH2 0xA8C DUP5 DUP4 DUP4 PUSH2 0xBEC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCE1 JUMPI DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH32 0x335721B01866DC23FBEE8B6B2C7B1E14D6F05C28CD35A2C934239F94095602A0 DUP4 PUSH1 0x40 MLOAD PUSH2 0xCD8 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD9A JUMPI DUP1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH32 0x1D4F9BBFC9CAB89D66E1A1562F2233CCBF1308CB4F63DE2EAD5787ADDDB8FA68 DUP3 PUSH1 0x40 MLOAD PUSH2 0xD91 SWAP2 SWAP1 PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB7 DUP2 PUSH2 0xDA4 JUMP JUMPDEST DUP2 EQ PUSH2 0xDC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDD4 DUP2 PUSH2 0xDAE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDF0 JUMPI PUSH2 0xDEF PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDFE DUP5 DUP3 DUP6 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE32 DUP3 PUSH2 0xE07 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE42 DUP2 PUSH2 0xE27 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE5D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE39 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE6C DUP2 PUSH2 0xE27 JUMP JUMPDEST DUP2 EQ PUSH2 0xE77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE89 DUP2 PUSH2 0xE63 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA7 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEB6 DUP7 DUP3 DUP8 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xEC7 DUP7 DUP3 DUP8 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xED8 DUP7 DUP3 DUP8 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0xEEB DUP2 PUSH2 0xDA4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF06 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEE2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF29 DUP2 PUSH2 0xF0C JUMP JUMPDEST DUP2 EQ PUSH2 0xF34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF46 DUP2 PUSH2 0xF20 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF62 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF71 DUP6 DUP3 DUP7 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF82 DUP6 DUP3 DUP7 ADD PUSH2 0xF37 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xF95 DUP2 PUSH2 0xF0C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFB0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF8C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFCD JUMPI PUSH2 0xFCC PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFDB DUP6 DUP3 DUP7 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xFEC DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1012 JUMPI PUSH2 0x1011 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1020 DUP9 DUP3 DUP10 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1031 DUP9 DUP3 DUP10 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1042 DUP9 DUP3 DUP10 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1053 DUP9 DUP3 DUP10 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x1064 DUP9 DUP3 DUP10 ADD PUSH2 0xF37 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1086 DUP2 PUSH2 0x1071 JUMP JUMPDEST DUP2 EQ PUSH2 0x1091 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10A3 DUP2 PUSH2 0x107D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10C0 JUMPI PUSH2 0x10BF PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10CE DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x10DF DUP6 DUP3 DUP7 ADD PUSH2 0x1094 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1103 JUMPI PUSH2 0x1102 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1111 DUP8 DUP3 DUP9 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1122 DUP8 DUP3 DUP9 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x1133 DUP8 DUP3 DUP9 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x1144 DUP8 DUP3 DUP9 ADD PUSH2 0xF37 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1167 JUMPI PUSH2 0x1166 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1186 DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1199 DUP2 PUSH2 0x1071 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11B4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1190 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11D5 PUSH2 0x11D0 DUP3 PUSH2 0xDA4 JUMP JUMPDEST PUSH2 0x11BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11E7 DUP3 DUP6 PUSH2 0x11C4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x11F7 DUP3 DUP5 PUSH2 0x11C4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 TLOAD 0x28 STOP RETURNDATASIZE SWAP13 LOG2 0xF7 0x24 0x22 0x23 CALLER 0xAA BLOBHASH SELFBALANCE DUP12 ADDMOD SUB SWAP5 0xE9 DUP8 COINBASE DUP4 0xAB PUSH0 DIV SUB PUSH17 0x12B21D32B864736F6C634300081C003300 ", + "sourceMap": "85:6342:1:-:0;;;618:69;;;;;;;;;;670:10;649:7;:12;657:3;649:12;;;;;;;;;;;;;:18;;;:31;;;;;;;;;;;;;;;;;;85:6342;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_setOwner_509": { + "entryPoint": 2964, + "id": 509, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setResolverAndTTL_559": { + "entryPoint": 3052, + "id": 559, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@isApprovedForAll_494": { + "entryPoint": 2706, + "id": 494, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@owner_426": { + "entryPoint": 704, + "id": 426, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@recordExists_476": { + "entryPoint": 2854, + "id": 476, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@resolver_441": { + "entryPoint": 641, + "id": 441, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@setApprovalForAll_394": { + "entryPoint": 2426, + "id": 394, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@setOwner_278": { + "entryPoint": 2060, + "id": 278, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@setRecord_225": { + "entryPoint": 2679, + "id": 225, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@setResolver_343": { + "entryPoint": 1654, + "id": 343, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@setSubnodeOwner_318": { + "entryPoint": 834, + "id": 318, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@setSubnodeRecord_255": { + "entryPoint": 2392, + "id": 255, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@setTTL_368": { + "entryPoint": 1221, + "id": 368, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@ttl_456": { + "entryPoint": 1603, + "id": 456, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3706, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 4244, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes32": { + "entryPoint": 3525, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint64": { + "entryPoint": 3895, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 4432, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 4265, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 3546, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_address": { + "entryPoint": 4022, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes32t_addresst_addresst_uint64": { + "entryPoint": 4329, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_bytes32t_bytes32t_address": { + "entryPoint": 3727, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bytes32t_bytes32t_addresst_addresst_uint64": { + "entryPoint": 4086, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_decode_tuple_t_bytes32t_uint64": { + "entryPoint": 3916, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3641, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 4496, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 3810, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack": { + "entryPoint": 4548, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint64_to_t_uint64_fromStack": { + "entryPoint": 3980, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 4571, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3656, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 4511, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 3825, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { + "entryPoint": 3995, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3623, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 4209, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 3492, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3591, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint64": { + "entryPoint": 3852, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_bytes32": { + "entryPoint": 4538, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3487, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 3683, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 4221, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 3502, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint64": { + "entryPoint": 3872, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:8514:37", + "nodeType": "YulBlock", + "src": "0:8514:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "379:32:37", + "nodeType": "YulBlock", + "src": "379:32:37", + "statements": [ + { + "nativeSrc": "389:16:37", + "nodeType": "YulAssignment", + "src": "389:16:37", + "value": { + "name": "value", + "nativeSrc": "400:5:37", + "nodeType": "YulIdentifier", + "src": "400:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:37", + "nodeType": "YulIdentifier", + "src": "389:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "334:77:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:37", + "nodeType": "YulTypedName", + "src": "361:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:37", + "nodeType": "YulTypedName", + "src": "371:7:37", + "type": "" + } + ], + "src": "334:77:37" + }, + { + "body": { + "nativeSrc": "460:79:37", + "nodeType": "YulBlock", + "src": "460:79:37", + "statements": [ + { + "body": { + "nativeSrc": "517:16:37", + "nodeType": "YulBlock", + "src": "517:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "526:1:37", + "nodeType": "YulLiteral", + "src": "526:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "529:1:37", + "nodeType": "YulLiteral", + "src": "529:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "519:6:37", + "nodeType": "YulIdentifier", + "src": "519:6:37" + }, + "nativeSrc": "519:12:37", + "nodeType": "YulFunctionCall", + "src": "519:12:37" + }, + "nativeSrc": "519:12:37", + "nodeType": "YulExpressionStatement", + "src": "519:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "483:5:37", + "nodeType": "YulIdentifier", + "src": "483:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "508:5:37", + "nodeType": "YulIdentifier", + "src": "508:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "490:17:37", + "nodeType": "YulIdentifier", + "src": "490:17:37" + }, + "nativeSrc": "490:24:37", + "nodeType": "YulFunctionCall", + "src": "490:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "480:2:37", + "nodeType": "YulIdentifier", + "src": "480:2:37" + }, + "nativeSrc": "480:35:37", + "nodeType": "YulFunctionCall", + "src": "480:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "473:6:37", + "nodeType": "YulIdentifier", + "src": "473:6:37" + }, + "nativeSrc": "473:43:37", + "nodeType": "YulFunctionCall", + "src": "473:43:37" + }, + "nativeSrc": "470:63:37", + "nodeType": "YulIf", + "src": "470:63:37" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nativeSrc": "417:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "453:5:37", + "nodeType": "YulTypedName", + "src": "453:5:37", + "type": "" + } + ], + "src": "417:122:37" + }, + { + "body": { + "nativeSrc": "597:87:37", + "nodeType": "YulBlock", + "src": "597:87:37", + "statements": [ + { + "nativeSrc": "607:29:37", + "nodeType": "YulAssignment", + "src": "607:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "629:6:37", + "nodeType": "YulIdentifier", + "src": "629:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "616:12:37", + "nodeType": "YulIdentifier", + "src": "616:12:37" + }, + "nativeSrc": "616:20:37", + "nodeType": "YulFunctionCall", + "src": "616:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "607:5:37", + "nodeType": "YulIdentifier", + "src": "607:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "672:5:37", + "nodeType": "YulIdentifier", + "src": "672:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nativeSrc": "645:26:37", + "nodeType": "YulIdentifier", + "src": "645:26:37" + }, + "nativeSrc": "645:33:37", + "nodeType": "YulFunctionCall", + "src": "645:33:37" + }, + "nativeSrc": "645:33:37", + "nodeType": "YulExpressionStatement", + "src": "645:33:37" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nativeSrc": "545:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "575:6:37", + "nodeType": "YulTypedName", + "src": "575:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "583:3:37", + "nodeType": "YulTypedName", + "src": "583:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "591:5:37", + "nodeType": "YulTypedName", + "src": "591:5:37", + "type": "" + } + ], + "src": "545:139:37" + }, + { + "body": { + "nativeSrc": "756:263:37", + "nodeType": "YulBlock", + "src": "756:263:37", + "statements": [ + { + "body": { + "nativeSrc": "802:83:37", + "nodeType": "YulBlock", + "src": "802:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "804:77:37", + "nodeType": "YulIdentifier", + "src": "804:77:37" + }, + "nativeSrc": "804:79:37", + "nodeType": "YulFunctionCall", + "src": "804:79:37" + }, + "nativeSrc": "804:79:37", + "nodeType": "YulExpressionStatement", + "src": "804:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "777:7:37", + "nodeType": "YulIdentifier", + "src": "777:7:37" + }, + { + "name": "headStart", + "nativeSrc": "786:9:37", + "nodeType": "YulIdentifier", + "src": "786:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "773:3:37", + "nodeType": "YulIdentifier", + "src": "773:3:37" + }, + "nativeSrc": "773:23:37", + "nodeType": "YulFunctionCall", + "src": "773:23:37" + }, + { + "kind": "number", + "nativeSrc": "798:2:37", + "nodeType": "YulLiteral", + "src": "798:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "769:3:37", + "nodeType": "YulIdentifier", + "src": "769:3:37" + }, + "nativeSrc": "769:32:37", + "nodeType": "YulFunctionCall", + "src": "769:32:37" + }, + "nativeSrc": "766:119:37", + "nodeType": "YulIf", + "src": "766:119:37" + }, + { + "nativeSrc": "895:117:37", + "nodeType": "YulBlock", + "src": "895:117:37", + "statements": [ + { + "nativeSrc": "910:15:37", + "nodeType": "YulVariableDeclaration", + "src": "910:15:37", + "value": { + "kind": "number", + "nativeSrc": "924:1:37", + "nodeType": "YulLiteral", + "src": "924:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "914:6:37", + "nodeType": "YulTypedName", + "src": "914:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "939:63:37", + "nodeType": "YulAssignment", + "src": "939:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "974:9:37", + "nodeType": "YulIdentifier", + "src": "974:9:37" + }, + { + "name": "offset", + "nativeSrc": "985:6:37", + "nodeType": "YulIdentifier", + "src": "985:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "970:3:37", + "nodeType": "YulIdentifier", + "src": "970:3:37" + }, + "nativeSrc": "970:22:37", + "nodeType": "YulFunctionCall", + "src": "970:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "994:7:37", + "nodeType": "YulIdentifier", + "src": "994:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "949:20:37", + "nodeType": "YulIdentifier", + "src": "949:20:37" + }, + "nativeSrc": "949:53:37", + "nodeType": "YulFunctionCall", + "src": "949:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "939:6:37", + "nodeType": "YulIdentifier", + "src": "939:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "690:329:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "726:9:37", + "nodeType": "YulTypedName", + "src": "726:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "737:7:37", + "nodeType": "YulTypedName", + "src": "737:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "749:6:37", + "nodeType": "YulTypedName", + "src": "749:6:37", + "type": "" + } + ], + "src": "690:329:37" + }, + { + "body": { + "nativeSrc": "1070:81:37", + "nodeType": "YulBlock", + "src": "1070:81:37", + "statements": [ + { + "nativeSrc": "1080:65:37", + "nodeType": "YulAssignment", + "src": "1080:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1095:5:37", + "nodeType": "YulIdentifier", + "src": "1095:5:37" + }, + { + "kind": "number", + "nativeSrc": "1102:42:37", + "nodeType": "YulLiteral", + "src": "1102:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1091:3:37", + "nodeType": "YulIdentifier", + "src": "1091:3:37" + }, + "nativeSrc": "1091:54:37", + "nodeType": "YulFunctionCall", + "src": "1091:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1080:7:37", + "nodeType": "YulIdentifier", + "src": "1080:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "1025:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1052:5:37", + "nodeType": "YulTypedName", + "src": "1052:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1062:7:37", + "nodeType": "YulTypedName", + "src": "1062:7:37", + "type": "" + } + ], + "src": "1025:126:37" + }, + { + "body": { + "nativeSrc": "1202:51:37", + "nodeType": "YulBlock", + "src": "1202:51:37", + "statements": [ + { + "nativeSrc": "1212:35:37", + "nodeType": "YulAssignment", + "src": "1212:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1241:5:37", + "nodeType": "YulIdentifier", + "src": "1241:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "1223:17:37", + "nodeType": "YulIdentifier", + "src": "1223:17:37" + }, + "nativeSrc": "1223:24:37", + "nodeType": "YulFunctionCall", + "src": "1223:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1212:7:37", + "nodeType": "YulIdentifier", + "src": "1212:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "1157:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1184:5:37", + "nodeType": "YulTypedName", + "src": "1184:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1194:7:37", + "nodeType": "YulTypedName", + "src": "1194:7:37", + "type": "" + } + ], + "src": "1157:96:37" + }, + { + "body": { + "nativeSrc": "1324:53:37", + "nodeType": "YulBlock", + "src": "1324:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1341:3:37", + "nodeType": "YulIdentifier", + "src": "1341:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1364:5:37", + "nodeType": "YulIdentifier", + "src": "1364:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1346:17:37", + "nodeType": "YulIdentifier", + "src": "1346:17:37" + }, + "nativeSrc": "1346:24:37", + "nodeType": "YulFunctionCall", + "src": "1346:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1334:6:37", + "nodeType": "YulIdentifier", + "src": "1334:6:37" + }, + "nativeSrc": "1334:37:37", + "nodeType": "YulFunctionCall", + "src": "1334:37:37" + }, + "nativeSrc": "1334:37:37", + "nodeType": "YulExpressionStatement", + "src": "1334:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1259:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1312:5:37", + "nodeType": "YulTypedName", + "src": "1312:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1319:3:37", + "nodeType": "YulTypedName", + "src": "1319:3:37", + "type": "" + } + ], + "src": "1259:118:37" + }, + { + "body": { + "nativeSrc": "1481:124:37", + "nodeType": "YulBlock", + "src": "1481:124:37", + "statements": [ + { + "nativeSrc": "1491:26:37", + "nodeType": "YulAssignment", + "src": "1491:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1503:9:37", + "nodeType": "YulIdentifier", + "src": "1503:9:37" + }, + { + "kind": "number", + "nativeSrc": "1514:2:37", + "nodeType": "YulLiteral", + "src": "1514:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1499:3:37", + "nodeType": "YulIdentifier", + "src": "1499:3:37" + }, + "nativeSrc": "1499:18:37", + "nodeType": "YulFunctionCall", + "src": "1499:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1491:4:37", + "nodeType": "YulIdentifier", + "src": "1491:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1571:6:37", + "nodeType": "YulIdentifier", + "src": "1571:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1584:9:37", + "nodeType": "YulIdentifier", + "src": "1584:9:37" + }, + { + "kind": "number", + "nativeSrc": "1595:1:37", + "nodeType": "YulLiteral", + "src": "1595:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1580:3:37", + "nodeType": "YulIdentifier", + "src": "1580:3:37" + }, + "nativeSrc": "1580:17:37", + "nodeType": "YulFunctionCall", + "src": "1580:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1527:43:37", + "nodeType": "YulIdentifier", + "src": "1527:43:37" + }, + "nativeSrc": "1527:71:37", + "nodeType": "YulFunctionCall", + "src": "1527:71:37" + }, + "nativeSrc": "1527:71:37", + "nodeType": "YulExpressionStatement", + "src": "1527:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "1383:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1453:9:37", + "nodeType": "YulTypedName", + "src": "1453:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1465:6:37", + "nodeType": "YulTypedName", + "src": "1465:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1476:4:37", + "nodeType": "YulTypedName", + "src": "1476:4:37", + "type": "" + } + ], + "src": "1383:222:37" + }, + { + "body": { + "nativeSrc": "1654:79:37", + "nodeType": "YulBlock", + "src": "1654:79:37", + "statements": [ + { + "body": { + "nativeSrc": "1711:16:37", + "nodeType": "YulBlock", + "src": "1711:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1720:1:37", + "nodeType": "YulLiteral", + "src": "1720:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1723:1:37", + "nodeType": "YulLiteral", + "src": "1723:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1713:6:37", + "nodeType": "YulIdentifier", + "src": "1713:6:37" + }, + "nativeSrc": "1713:12:37", + "nodeType": "YulFunctionCall", + "src": "1713:12:37" + }, + "nativeSrc": "1713:12:37", + "nodeType": "YulExpressionStatement", + "src": "1713:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1677:5:37", + "nodeType": "YulIdentifier", + "src": "1677:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1702:5:37", + "nodeType": "YulIdentifier", + "src": "1702:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1684:17:37", + "nodeType": "YulIdentifier", + "src": "1684:17:37" + }, + "nativeSrc": "1684:24:37", + "nodeType": "YulFunctionCall", + "src": "1684:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1674:2:37", + "nodeType": "YulIdentifier", + "src": "1674:2:37" + }, + "nativeSrc": "1674:35:37", + "nodeType": "YulFunctionCall", + "src": "1674:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1667:6:37", + "nodeType": "YulIdentifier", + "src": "1667:6:37" + }, + "nativeSrc": "1667:43:37", + "nodeType": "YulFunctionCall", + "src": "1667:43:37" + }, + "nativeSrc": "1664:63:37", + "nodeType": "YulIf", + "src": "1664:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "1611:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1647:5:37", + "nodeType": "YulTypedName", + "src": "1647:5:37", + "type": "" + } + ], + "src": "1611:122:37" + }, + { + "body": { + "nativeSrc": "1791:87:37", + "nodeType": "YulBlock", + "src": "1791:87:37", + "statements": [ + { + "nativeSrc": "1801:29:37", + "nodeType": "YulAssignment", + "src": "1801:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1823:6:37", + "nodeType": "YulIdentifier", + "src": "1823:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1810:12:37", + "nodeType": "YulIdentifier", + "src": "1810:12:37" + }, + "nativeSrc": "1810:20:37", + "nodeType": "YulFunctionCall", + "src": "1810:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1801:5:37", + "nodeType": "YulIdentifier", + "src": "1801:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1866:5:37", + "nodeType": "YulIdentifier", + "src": "1866:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "1839:26:37", + "nodeType": "YulIdentifier", + "src": "1839:26:37" + }, + "nativeSrc": "1839:33:37", + "nodeType": "YulFunctionCall", + "src": "1839:33:37" + }, + "nativeSrc": "1839:33:37", + "nodeType": "YulExpressionStatement", + "src": "1839:33:37" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "1739:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1769:6:37", + "nodeType": "YulTypedName", + "src": "1769:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1777:3:37", + "nodeType": "YulTypedName", + "src": "1777:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1785:5:37", + "nodeType": "YulTypedName", + "src": "1785:5:37", + "type": "" + } + ], + "src": "1739:139:37" + }, + { + "body": { + "nativeSrc": "1984:519:37", + "nodeType": "YulBlock", + "src": "1984:519:37", + "statements": [ + { + "body": { + "nativeSrc": "2030:83:37", + "nodeType": "YulBlock", + "src": "2030:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2032:77:37", + "nodeType": "YulIdentifier", + "src": "2032:77:37" + }, + "nativeSrc": "2032:79:37", + "nodeType": "YulFunctionCall", + "src": "2032:79:37" + }, + "nativeSrc": "2032:79:37", + "nodeType": "YulExpressionStatement", + "src": "2032:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2005:7:37", + "nodeType": "YulIdentifier", + "src": "2005:7:37" + }, + { + "name": "headStart", + "nativeSrc": "2014:9:37", + "nodeType": "YulIdentifier", + "src": "2014:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2001:3:37", + "nodeType": "YulIdentifier", + "src": "2001:3:37" + }, + "nativeSrc": "2001:23:37", + "nodeType": "YulFunctionCall", + "src": "2001:23:37" + }, + { + "kind": "number", + "nativeSrc": "2026:2:37", + "nodeType": "YulLiteral", + "src": "2026:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1997:3:37", + "nodeType": "YulIdentifier", + "src": "1997:3:37" + }, + "nativeSrc": "1997:32:37", + "nodeType": "YulFunctionCall", + "src": "1997:32:37" + }, + "nativeSrc": "1994:119:37", + "nodeType": "YulIf", + "src": "1994:119:37" + }, + { + "nativeSrc": "2123:117:37", + "nodeType": "YulBlock", + "src": "2123:117:37", + "statements": [ + { + "nativeSrc": "2138:15:37", + "nodeType": "YulVariableDeclaration", + "src": "2138:15:37", + "value": { + "kind": "number", + "nativeSrc": "2152:1:37", + "nodeType": "YulLiteral", + "src": "2152:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2142:6:37", + "nodeType": "YulTypedName", + "src": "2142:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "2167:63:37", + "nodeType": "YulAssignment", + "src": "2167:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2202:9:37", + "nodeType": "YulIdentifier", + "src": "2202:9:37" + }, + { + "name": "offset", + "nativeSrc": "2213:6:37", + "nodeType": "YulIdentifier", + "src": "2213:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2198:3:37", + "nodeType": "YulIdentifier", + "src": "2198:3:37" + }, + "nativeSrc": "2198:22:37", + "nodeType": "YulFunctionCall", + "src": "2198:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "2222:7:37", + "nodeType": "YulIdentifier", + "src": "2222:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "2177:20:37", + "nodeType": "YulIdentifier", + "src": "2177:20:37" + }, + "nativeSrc": "2177:53:37", + "nodeType": "YulFunctionCall", + "src": "2177:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2167:6:37", + "nodeType": "YulIdentifier", + "src": "2167:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "2250:118:37", + "nodeType": "YulBlock", + "src": "2250:118:37", + "statements": [ + { + "nativeSrc": "2265:16:37", + "nodeType": "YulVariableDeclaration", + "src": "2265:16:37", + "value": { + "kind": "number", + "nativeSrc": "2279:2:37", + "nodeType": "YulLiteral", + "src": "2279:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2269:6:37", + "nodeType": "YulTypedName", + "src": "2269:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "2295:63:37", + "nodeType": "YulAssignment", + "src": "2295:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2330:9:37", + "nodeType": "YulIdentifier", + "src": "2330:9:37" + }, + { + "name": "offset", + "nativeSrc": "2341:6:37", + "nodeType": "YulIdentifier", + "src": "2341:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2326:3:37", + "nodeType": "YulIdentifier", + "src": "2326:3:37" + }, + "nativeSrc": "2326:22:37", + "nodeType": "YulFunctionCall", + "src": "2326:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "2350:7:37", + "nodeType": "YulIdentifier", + "src": "2350:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "2305:20:37", + "nodeType": "YulIdentifier", + "src": "2305:20:37" + }, + "nativeSrc": "2305:53:37", + "nodeType": "YulFunctionCall", + "src": "2305:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "2295:6:37", + "nodeType": "YulIdentifier", + "src": "2295:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "2378:118:37", + "nodeType": "YulBlock", + "src": "2378:118:37", + "statements": [ + { + "nativeSrc": "2393:16:37", + "nodeType": "YulVariableDeclaration", + "src": "2393:16:37", + "value": { + "kind": "number", + "nativeSrc": "2407:2:37", + "nodeType": "YulLiteral", + "src": "2407:2:37", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2397:6:37", + "nodeType": "YulTypedName", + "src": "2397:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "2423:63:37", + "nodeType": "YulAssignment", + "src": "2423:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2458:9:37", + "nodeType": "YulIdentifier", + "src": "2458:9:37" + }, + { + "name": "offset", + "nativeSrc": "2469:6:37", + "nodeType": "YulIdentifier", + "src": "2469:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2454:3:37", + "nodeType": "YulIdentifier", + "src": "2454:3:37" + }, + "nativeSrc": "2454:22:37", + "nodeType": "YulFunctionCall", + "src": "2454:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "2478:7:37", + "nodeType": "YulIdentifier", + "src": "2478:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "2433:20:37", + "nodeType": "YulIdentifier", + "src": "2433:20:37" + }, + "nativeSrc": "2433:53:37", + "nodeType": "YulFunctionCall", + "src": "2433:53:37" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "2423:6:37", + "nodeType": "YulIdentifier", + "src": "2423:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_bytes32t_address", + "nativeSrc": "1884:619:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1938:9:37", + "nodeType": "YulTypedName", + "src": "1938:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1949:7:37", + "nodeType": "YulTypedName", + "src": "1949:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1961:6:37", + "nodeType": "YulTypedName", + "src": "1961:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1969:6:37", + "nodeType": "YulTypedName", + "src": "1969:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "1977:6:37", + "nodeType": "YulTypedName", + "src": "1977:6:37", + "type": "" + } + ], + "src": "1884:619:37" + }, + { + "body": { + "nativeSrc": "2574:53:37", + "nodeType": "YulBlock", + "src": "2574:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2591:3:37", + "nodeType": "YulIdentifier", + "src": "2591:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2614:5:37", + "nodeType": "YulIdentifier", + "src": "2614:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "2596:17:37", + "nodeType": "YulIdentifier", + "src": "2596:17:37" + }, + "nativeSrc": "2596:24:37", + "nodeType": "YulFunctionCall", + "src": "2596:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2584:6:37", + "nodeType": "YulIdentifier", + "src": "2584:6:37" + }, + "nativeSrc": "2584:37:37", + "nodeType": "YulFunctionCall", + "src": "2584:37:37" + }, + "nativeSrc": "2584:37:37", + "nodeType": "YulExpressionStatement", + "src": "2584:37:37" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "2509:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2562:5:37", + "nodeType": "YulTypedName", + "src": "2562:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2569:3:37", + "nodeType": "YulTypedName", + "src": "2569:3:37", + "type": "" + } + ], + "src": "2509:118:37" + }, + { + "body": { + "nativeSrc": "2731:124:37", + "nodeType": "YulBlock", + "src": "2731:124:37", + "statements": [ + { + "nativeSrc": "2741:26:37", + "nodeType": "YulAssignment", + "src": "2741:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2753:9:37", + "nodeType": "YulIdentifier", + "src": "2753:9:37" + }, + { + "kind": "number", + "nativeSrc": "2764:2:37", + "nodeType": "YulLiteral", + "src": "2764:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2749:3:37", + "nodeType": "YulIdentifier", + "src": "2749:3:37" + }, + "nativeSrc": "2749:18:37", + "nodeType": "YulFunctionCall", + "src": "2749:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2741:4:37", + "nodeType": "YulIdentifier", + "src": "2741:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2821:6:37", + "nodeType": "YulIdentifier", + "src": "2821:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2834:9:37", + "nodeType": "YulIdentifier", + "src": "2834:9:37" + }, + { + "kind": "number", + "nativeSrc": "2845:1:37", + "nodeType": "YulLiteral", + "src": "2845:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2830:3:37", + "nodeType": "YulIdentifier", + "src": "2830:3:37" + }, + "nativeSrc": "2830:17:37", + "nodeType": "YulFunctionCall", + "src": "2830:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "2777:43:37", + "nodeType": "YulIdentifier", + "src": "2777:43:37" + }, + "nativeSrc": "2777:71:37", + "nodeType": "YulFunctionCall", + "src": "2777:71:37" + }, + "nativeSrc": "2777:71:37", + "nodeType": "YulExpressionStatement", + "src": "2777:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "2633:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2703:9:37", + "nodeType": "YulTypedName", + "src": "2703:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2715:6:37", + "nodeType": "YulTypedName", + "src": "2715:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2726:4:37", + "nodeType": "YulTypedName", + "src": "2726:4:37", + "type": "" + } + ], + "src": "2633:222:37" + }, + { + "body": { + "nativeSrc": "2905:57:37", + "nodeType": "YulBlock", + "src": "2905:57:37", + "statements": [ + { + "nativeSrc": "2915:41:37", + "nodeType": "YulAssignment", + "src": "2915:41:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2930:5:37", + "nodeType": "YulIdentifier", + "src": "2930:5:37" + }, + { + "kind": "number", + "nativeSrc": "2937:18:37", + "nodeType": "YulLiteral", + "src": "2937:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2926:3:37", + "nodeType": "YulIdentifier", + "src": "2926:3:37" + }, + "nativeSrc": "2926:30:37", + "nodeType": "YulFunctionCall", + "src": "2926:30:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2915:7:37", + "nodeType": "YulIdentifier", + "src": "2915:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint64", + "nativeSrc": "2861:101:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2887:5:37", + "nodeType": "YulTypedName", + "src": "2887:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2897:7:37", + "nodeType": "YulTypedName", + "src": "2897:7:37", + "type": "" + } + ], + "src": "2861:101:37" + }, + { + "body": { + "nativeSrc": "3010:78:37", + "nodeType": "YulBlock", + "src": "3010:78:37", + "statements": [ + { + "body": { + "nativeSrc": "3066:16:37", + "nodeType": "YulBlock", + "src": "3066:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3075:1:37", + "nodeType": "YulLiteral", + "src": "3075:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3078:1:37", + "nodeType": "YulLiteral", + "src": "3078:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3068:6:37", + "nodeType": "YulIdentifier", + "src": "3068:6:37" + }, + "nativeSrc": "3068:12:37", + "nodeType": "YulFunctionCall", + "src": "3068:12:37" + }, + "nativeSrc": "3068:12:37", + "nodeType": "YulExpressionStatement", + "src": "3068:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3033:5:37", + "nodeType": "YulIdentifier", + "src": "3033:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3057:5:37", + "nodeType": "YulIdentifier", + "src": "3057:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint64", + "nativeSrc": "3040:16:37", + "nodeType": "YulIdentifier", + "src": "3040:16:37" + }, + "nativeSrc": "3040:23:37", + "nodeType": "YulFunctionCall", + "src": "3040:23:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3030:2:37", + "nodeType": "YulIdentifier", + "src": "3030:2:37" + }, + "nativeSrc": "3030:34:37", + "nodeType": "YulFunctionCall", + "src": "3030:34:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3023:6:37", + "nodeType": "YulIdentifier", + "src": "3023:6:37" + }, + "nativeSrc": "3023:42:37", + "nodeType": "YulFunctionCall", + "src": "3023:42:37" + }, + "nativeSrc": "3020:62:37", + "nodeType": "YulIf", + "src": "3020:62:37" + } + ] + }, + "name": "validator_revert_t_uint64", + "nativeSrc": "2968:120:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3003:5:37", + "nodeType": "YulTypedName", + "src": "3003:5:37", + "type": "" + } + ], + "src": "2968:120:37" + }, + { + "body": { + "nativeSrc": "3145:86:37", + "nodeType": "YulBlock", + "src": "3145:86:37", + "statements": [ + { + "nativeSrc": "3155:29:37", + "nodeType": "YulAssignment", + "src": "3155:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3177:6:37", + "nodeType": "YulIdentifier", + "src": "3177:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3164:12:37", + "nodeType": "YulIdentifier", + "src": "3164:12:37" + }, + "nativeSrc": "3164:20:37", + "nodeType": "YulFunctionCall", + "src": "3164:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3155:5:37", + "nodeType": "YulIdentifier", + "src": "3155:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3219:5:37", + "nodeType": "YulIdentifier", + "src": "3219:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_uint64", + "nativeSrc": "3193:25:37", + "nodeType": "YulIdentifier", + "src": "3193:25:37" + }, + "nativeSrc": "3193:32:37", + "nodeType": "YulFunctionCall", + "src": "3193:32:37" + }, + "nativeSrc": "3193:32:37", + "nodeType": "YulExpressionStatement", + "src": "3193:32:37" + } + ] + }, + "name": "abi_decode_t_uint64", + "nativeSrc": "3094:137:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3123:6:37", + "nodeType": "YulTypedName", + "src": "3123:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3131:3:37", + "nodeType": "YulTypedName", + "src": "3131:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3139:5:37", + "nodeType": "YulTypedName", + "src": "3139:5:37", + "type": "" + } + ], + "src": "3094:137:37" + }, + { + "body": { + "nativeSrc": "3319:390:37", + "nodeType": "YulBlock", + "src": "3319:390:37", + "statements": [ + { + "body": { + "nativeSrc": "3365:83:37", + "nodeType": "YulBlock", + "src": "3365:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3367:77:37", + "nodeType": "YulIdentifier", + "src": "3367:77:37" + }, + "nativeSrc": "3367:79:37", + "nodeType": "YulFunctionCall", + "src": "3367:79:37" + }, + "nativeSrc": "3367:79:37", + "nodeType": "YulExpressionStatement", + "src": "3367:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3340:7:37", + "nodeType": "YulIdentifier", + "src": "3340:7:37" + }, + { + "name": "headStart", + "nativeSrc": "3349:9:37", + "nodeType": "YulIdentifier", + "src": "3349:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3336:3:37", + "nodeType": "YulIdentifier", + "src": "3336:3:37" + }, + "nativeSrc": "3336:23:37", + "nodeType": "YulFunctionCall", + "src": "3336:23:37" + }, + { + "kind": "number", + "nativeSrc": "3361:2:37", + "nodeType": "YulLiteral", + "src": "3361:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3332:3:37", + "nodeType": "YulIdentifier", + "src": "3332:3:37" + }, + "nativeSrc": "3332:32:37", + "nodeType": "YulFunctionCall", + "src": "3332:32:37" + }, + "nativeSrc": "3329:119:37", + "nodeType": "YulIf", + "src": "3329:119:37" + }, + { + "nativeSrc": "3458:117:37", + "nodeType": "YulBlock", + "src": "3458:117:37", + "statements": [ + { + "nativeSrc": "3473:15:37", + "nodeType": "YulVariableDeclaration", + "src": "3473:15:37", + "value": { + "kind": "number", + "nativeSrc": "3487:1:37", + "nodeType": "YulLiteral", + "src": "3487:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3477:6:37", + "nodeType": "YulTypedName", + "src": "3477:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3502:63:37", + "nodeType": "YulAssignment", + "src": "3502:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3537:9:37", + "nodeType": "YulIdentifier", + "src": "3537:9:37" + }, + { + "name": "offset", + "nativeSrc": "3548:6:37", + "nodeType": "YulIdentifier", + "src": "3548:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3533:3:37", + "nodeType": "YulIdentifier", + "src": "3533:3:37" + }, + "nativeSrc": "3533:22:37", + "nodeType": "YulFunctionCall", + "src": "3533:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3557:7:37", + "nodeType": "YulIdentifier", + "src": "3557:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "3512:20:37", + "nodeType": "YulIdentifier", + "src": "3512:20:37" + }, + "nativeSrc": "3512:53:37", + "nodeType": "YulFunctionCall", + "src": "3512:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3502:6:37", + "nodeType": "YulIdentifier", + "src": "3502:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "3585:117:37", + "nodeType": "YulBlock", + "src": "3585:117:37", + "statements": [ + { + "nativeSrc": "3600:16:37", + "nodeType": "YulVariableDeclaration", + "src": "3600:16:37", + "value": { + "kind": "number", + "nativeSrc": "3614:2:37", + "nodeType": "YulLiteral", + "src": "3614:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3604:6:37", + "nodeType": "YulTypedName", + "src": "3604:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3630:62:37", + "nodeType": "YulAssignment", + "src": "3630:62:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3664:9:37", + "nodeType": "YulIdentifier", + "src": "3664:9:37" + }, + { + "name": "offset", + "nativeSrc": "3675:6:37", + "nodeType": "YulIdentifier", + "src": "3675:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3660:3:37", + "nodeType": "YulIdentifier", + "src": "3660:3:37" + }, + "nativeSrc": "3660:22:37", + "nodeType": "YulFunctionCall", + "src": "3660:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3684:7:37", + "nodeType": "YulIdentifier", + "src": "3684:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint64", + "nativeSrc": "3640:19:37", + "nodeType": "YulIdentifier", + "src": "3640:19:37" + }, + "nativeSrc": "3640:52:37", + "nodeType": "YulFunctionCall", + "src": "3640:52:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "3630:6:37", + "nodeType": "YulIdentifier", + "src": "3630:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_uint64", + "nativeSrc": "3237:472:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3281:9:37", + "nodeType": "YulTypedName", + "src": "3281:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3292:7:37", + "nodeType": "YulTypedName", + "src": "3292:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3304:6:37", + "nodeType": "YulTypedName", + "src": "3304:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3312:6:37", + "nodeType": "YulTypedName", + "src": "3312:6:37", + "type": "" + } + ], + "src": "3237:472:37" + }, + { + "body": { + "nativeSrc": "3778:52:37", + "nodeType": "YulBlock", + "src": "3778:52:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3795:3:37", + "nodeType": "YulIdentifier", + "src": "3795:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3817:5:37", + "nodeType": "YulIdentifier", + "src": "3817:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint64", + "nativeSrc": "3800:16:37", + "nodeType": "YulIdentifier", + "src": "3800:16:37" + }, + "nativeSrc": "3800:23:37", + "nodeType": "YulFunctionCall", + "src": "3800:23:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3788:6:37", + "nodeType": "YulIdentifier", + "src": "3788:6:37" + }, + "nativeSrc": "3788:36:37", + "nodeType": "YulFunctionCall", + "src": "3788:36:37" + }, + "nativeSrc": "3788:36:37", + "nodeType": "YulExpressionStatement", + "src": "3788:36:37" + } + ] + }, + "name": "abi_encode_t_uint64_to_t_uint64_fromStack", + "nativeSrc": "3715:115:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3766:5:37", + "nodeType": "YulTypedName", + "src": "3766:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3773:3:37", + "nodeType": "YulTypedName", + "src": "3773:3:37", + "type": "" + } + ], + "src": "3715:115:37" + }, + { + "body": { + "nativeSrc": "3932:122:37", + "nodeType": "YulBlock", + "src": "3932:122:37", + "statements": [ + { + "nativeSrc": "3942:26:37", + "nodeType": "YulAssignment", + "src": "3942:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3954:9:37", + "nodeType": "YulIdentifier", + "src": "3954:9:37" + }, + { + "kind": "number", + "nativeSrc": "3965:2:37", + "nodeType": "YulLiteral", + "src": "3965:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3950:3:37", + "nodeType": "YulIdentifier", + "src": "3950:3:37" + }, + "nativeSrc": "3950:18:37", + "nodeType": "YulFunctionCall", + "src": "3950:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3942:4:37", + "nodeType": "YulIdentifier", + "src": "3942:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4020:6:37", + "nodeType": "YulIdentifier", + "src": "4020:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4033:9:37", + "nodeType": "YulIdentifier", + "src": "4033:9:37" + }, + { + "kind": "number", + "nativeSrc": "4044:1:37", + "nodeType": "YulLiteral", + "src": "4044:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4029:3:37", + "nodeType": "YulIdentifier", + "src": "4029:3:37" + }, + "nativeSrc": "4029:17:37", + "nodeType": "YulFunctionCall", + "src": "4029:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint64_to_t_uint64_fromStack", + "nativeSrc": "3978:41:37", + "nodeType": "YulIdentifier", + "src": "3978:41:37" + }, + "nativeSrc": "3978:69:37", + "nodeType": "YulFunctionCall", + "src": "3978:69:37" + }, + "nativeSrc": "3978:69:37", + "nodeType": "YulExpressionStatement", + "src": "3978:69:37" + } + ] + }, + "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", + "nativeSrc": "3836:218:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3904:9:37", + "nodeType": "YulTypedName", + "src": "3904:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3916:6:37", + "nodeType": "YulTypedName", + "src": "3916:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3927:4:37", + "nodeType": "YulTypedName", + "src": "3927:4:37", + "type": "" + } + ], + "src": "3836:218:37" + }, + { + "body": { + "nativeSrc": "4143:391:37", + "nodeType": "YulBlock", + "src": "4143:391:37", + "statements": [ + { + "body": { + "nativeSrc": "4189:83:37", + "nodeType": "YulBlock", + "src": "4189:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4191:77:37", + "nodeType": "YulIdentifier", + "src": "4191:77:37" + }, + "nativeSrc": "4191:79:37", + "nodeType": "YulFunctionCall", + "src": "4191:79:37" + }, + "nativeSrc": "4191:79:37", + "nodeType": "YulExpressionStatement", + "src": "4191:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4164:7:37", + "nodeType": "YulIdentifier", + "src": "4164:7:37" + }, + { + "name": "headStart", + "nativeSrc": "4173:9:37", + "nodeType": "YulIdentifier", + "src": "4173:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4160:3:37", + "nodeType": "YulIdentifier", + "src": "4160:3:37" + }, + "nativeSrc": "4160:23:37", + "nodeType": "YulFunctionCall", + "src": "4160:23:37" + }, + { + "kind": "number", + "nativeSrc": "4185:2:37", + "nodeType": "YulLiteral", + "src": "4185:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4156:3:37", + "nodeType": "YulIdentifier", + "src": "4156:3:37" + }, + "nativeSrc": "4156:32:37", + "nodeType": "YulFunctionCall", + "src": "4156:32:37" + }, + "nativeSrc": "4153:119:37", + "nodeType": "YulIf", + "src": "4153:119:37" + }, + { + "nativeSrc": "4282:117:37", + "nodeType": "YulBlock", + "src": "4282:117:37", + "statements": [ + { + "nativeSrc": "4297:15:37", + "nodeType": "YulVariableDeclaration", + "src": "4297:15:37", + "value": { + "kind": "number", + "nativeSrc": "4311:1:37", + "nodeType": "YulLiteral", + "src": "4311:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4301:6:37", + "nodeType": "YulTypedName", + "src": "4301:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "4326:63:37", + "nodeType": "YulAssignment", + "src": "4326:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4361:9:37", + "nodeType": "YulIdentifier", + "src": "4361:9:37" + }, + { + "name": "offset", + "nativeSrc": "4372:6:37", + "nodeType": "YulIdentifier", + "src": "4372:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4357:3:37", + "nodeType": "YulIdentifier", + "src": "4357:3:37" + }, + "nativeSrc": "4357:22:37", + "nodeType": "YulFunctionCall", + "src": "4357:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4381:7:37", + "nodeType": "YulIdentifier", + "src": "4381:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "4336:20:37", + "nodeType": "YulIdentifier", + "src": "4336:20:37" + }, + "nativeSrc": "4336:53:37", + "nodeType": "YulFunctionCall", + "src": "4336:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4326:6:37", + "nodeType": "YulIdentifier", + "src": "4326:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "4409:118:37", + "nodeType": "YulBlock", + "src": "4409:118:37", + "statements": [ + { + "nativeSrc": "4424:16:37", + "nodeType": "YulVariableDeclaration", + "src": "4424:16:37", + "value": { + "kind": "number", + "nativeSrc": "4438:2:37", + "nodeType": "YulLiteral", + "src": "4438:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4428:6:37", + "nodeType": "YulTypedName", + "src": "4428:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "4454:63:37", + "nodeType": "YulAssignment", + "src": "4454:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4489:9:37", + "nodeType": "YulIdentifier", + "src": "4489:9:37" + }, + { + "name": "offset", + "nativeSrc": "4500:6:37", + "nodeType": "YulIdentifier", + "src": "4500:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4485:3:37", + "nodeType": "YulIdentifier", + "src": "4485:3:37" + }, + "nativeSrc": "4485:22:37", + "nodeType": "YulFunctionCall", + "src": "4485:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4509:7:37", + "nodeType": "YulIdentifier", + "src": "4509:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4464:20:37", + "nodeType": "YulIdentifier", + "src": "4464:20:37" + }, + "nativeSrc": "4464:53:37", + "nodeType": "YulFunctionCall", + "src": "4464:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4454:6:37", + "nodeType": "YulIdentifier", + "src": "4454:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nativeSrc": "4060:474:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4105:9:37", + "nodeType": "YulTypedName", + "src": "4105:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4116:7:37", + "nodeType": "YulTypedName", + "src": "4116:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4128:6:37", + "nodeType": "YulTypedName", + "src": "4128:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4136:6:37", + "nodeType": "YulTypedName", + "src": "4136:6:37", + "type": "" + } + ], + "src": "4060:474:37" + }, + { + "body": { + "nativeSrc": "4673:776:37", + "nodeType": "YulBlock", + "src": "4673:776:37", + "statements": [ + { + "body": { + "nativeSrc": "4720:83:37", + "nodeType": "YulBlock", + "src": "4720:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4722:77:37", + "nodeType": "YulIdentifier", + "src": "4722:77:37" + }, + "nativeSrc": "4722:79:37", + "nodeType": "YulFunctionCall", + "src": "4722:79:37" + }, + "nativeSrc": "4722:79:37", + "nodeType": "YulExpressionStatement", + "src": "4722:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4694:7:37", + "nodeType": "YulIdentifier", + "src": "4694:7:37" + }, + { + "name": "headStart", + "nativeSrc": "4703:9:37", + "nodeType": "YulIdentifier", + "src": "4703:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4690:3:37", + "nodeType": "YulIdentifier", + "src": "4690:3:37" + }, + "nativeSrc": "4690:23:37", + "nodeType": "YulFunctionCall", + "src": "4690:23:37" + }, + { + "kind": "number", + "nativeSrc": "4715:3:37", + "nodeType": "YulLiteral", + "src": "4715:3:37", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4686:3:37", + "nodeType": "YulIdentifier", + "src": "4686:3:37" + }, + "nativeSrc": "4686:33:37", + "nodeType": "YulFunctionCall", + "src": "4686:33:37" + }, + "nativeSrc": "4683:120:37", + "nodeType": "YulIf", + "src": "4683:120:37" + }, + { + "nativeSrc": "4813:117:37", + "nodeType": "YulBlock", + "src": "4813:117:37", + "statements": [ + { + "nativeSrc": "4828:15:37", + "nodeType": "YulVariableDeclaration", + "src": "4828:15:37", + "value": { + "kind": "number", + "nativeSrc": "4842:1:37", + "nodeType": "YulLiteral", + "src": "4842:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4832:6:37", + "nodeType": "YulTypedName", + "src": "4832:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "4857:63:37", + "nodeType": "YulAssignment", + "src": "4857:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4892:9:37", + "nodeType": "YulIdentifier", + "src": "4892:9:37" + }, + { + "name": "offset", + "nativeSrc": "4903:6:37", + "nodeType": "YulIdentifier", + "src": "4903:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4888:3:37", + "nodeType": "YulIdentifier", + "src": "4888:3:37" + }, + "nativeSrc": "4888:22:37", + "nodeType": "YulFunctionCall", + "src": "4888:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4912:7:37", + "nodeType": "YulIdentifier", + "src": "4912:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "4867:20:37", + "nodeType": "YulIdentifier", + "src": "4867:20:37" + }, + "nativeSrc": "4867:53:37", + "nodeType": "YulFunctionCall", + "src": "4867:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4857:6:37", + "nodeType": "YulIdentifier", + "src": "4857:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "4940:118:37", + "nodeType": "YulBlock", + "src": "4940:118:37", + "statements": [ + { + "nativeSrc": "4955:16:37", + "nodeType": "YulVariableDeclaration", + "src": "4955:16:37", + "value": { + "kind": "number", + "nativeSrc": "4969:2:37", + "nodeType": "YulLiteral", + "src": "4969:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4959:6:37", + "nodeType": "YulTypedName", + "src": "4959:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "4985:63:37", + "nodeType": "YulAssignment", + "src": "4985:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5020:9:37", + "nodeType": "YulIdentifier", + "src": "5020:9:37" + }, + { + "name": "offset", + "nativeSrc": "5031:6:37", + "nodeType": "YulIdentifier", + "src": "5031:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5016:3:37", + "nodeType": "YulIdentifier", + "src": "5016:3:37" + }, + "nativeSrc": "5016:22:37", + "nodeType": "YulFunctionCall", + "src": "5016:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "5040:7:37", + "nodeType": "YulIdentifier", + "src": "5040:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "4995:20:37", + "nodeType": "YulIdentifier", + "src": "4995:20:37" + }, + "nativeSrc": "4995:53:37", + "nodeType": "YulFunctionCall", + "src": "4995:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4985:6:37", + "nodeType": "YulIdentifier", + "src": "4985:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "5068:118:37", + "nodeType": "YulBlock", + "src": "5068:118:37", + "statements": [ + { + "nativeSrc": "5083:16:37", + "nodeType": "YulVariableDeclaration", + "src": "5083:16:37", + "value": { + "kind": "number", + "nativeSrc": "5097:2:37", + "nodeType": "YulLiteral", + "src": "5097:2:37", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5087:6:37", + "nodeType": "YulTypedName", + "src": "5087:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "5113:63:37", + "nodeType": "YulAssignment", + "src": "5113:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5148:9:37", + "nodeType": "YulIdentifier", + "src": "5148:9:37" + }, + { + "name": "offset", + "nativeSrc": "5159:6:37", + "nodeType": "YulIdentifier", + "src": "5159:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5144:3:37", + "nodeType": "YulIdentifier", + "src": "5144:3:37" + }, + "nativeSrc": "5144:22:37", + "nodeType": "YulFunctionCall", + "src": "5144:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "5168:7:37", + "nodeType": "YulIdentifier", + "src": "5168:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5123:20:37", + "nodeType": "YulIdentifier", + "src": "5123:20:37" + }, + "nativeSrc": "5123:53:37", + "nodeType": "YulFunctionCall", + "src": "5123:53:37" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "5113:6:37", + "nodeType": "YulIdentifier", + "src": "5113:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "5196:118:37", + "nodeType": "YulBlock", + "src": "5196:118:37", + "statements": [ + { + "nativeSrc": "5211:16:37", + "nodeType": "YulVariableDeclaration", + "src": "5211:16:37", + "value": { + "kind": "number", + "nativeSrc": "5225:2:37", + "nodeType": "YulLiteral", + "src": "5225:2:37", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5215:6:37", + "nodeType": "YulTypedName", + "src": "5215:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "5241:63:37", + "nodeType": "YulAssignment", + "src": "5241:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5276:9:37", + "nodeType": "YulIdentifier", + "src": "5276:9:37" + }, + { + "name": "offset", + "nativeSrc": "5287:6:37", + "nodeType": "YulIdentifier", + "src": "5287:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5272:3:37", + "nodeType": "YulIdentifier", + "src": "5272:3:37" + }, + "nativeSrc": "5272:22:37", + "nodeType": "YulFunctionCall", + "src": "5272:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "5296:7:37", + "nodeType": "YulIdentifier", + "src": "5296:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5251:20:37", + "nodeType": "YulIdentifier", + "src": "5251:20:37" + }, + "nativeSrc": "5251:53:37", + "nodeType": "YulFunctionCall", + "src": "5251:53:37" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "5241:6:37", + "nodeType": "YulIdentifier", + "src": "5241:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "5324:118:37", + "nodeType": "YulBlock", + "src": "5324:118:37", + "statements": [ + { + "nativeSrc": "5339:17:37", + "nodeType": "YulVariableDeclaration", + "src": "5339:17:37", + "value": { + "kind": "number", + "nativeSrc": "5353:3:37", + "nodeType": "YulLiteral", + "src": "5353:3:37", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5343:6:37", + "nodeType": "YulTypedName", + "src": "5343:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "5370:62:37", + "nodeType": "YulAssignment", + "src": "5370:62:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5404:9:37", + "nodeType": "YulIdentifier", + "src": "5404:9:37" + }, + { + "name": "offset", + "nativeSrc": "5415:6:37", + "nodeType": "YulIdentifier", + "src": "5415:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5400:3:37", + "nodeType": "YulIdentifier", + "src": "5400:3:37" + }, + "nativeSrc": "5400:22:37", + "nodeType": "YulFunctionCall", + "src": "5400:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "5424:7:37", + "nodeType": "YulIdentifier", + "src": "5424:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint64", + "nativeSrc": "5380:19:37", + "nodeType": "YulIdentifier", + "src": "5380:19:37" + }, + "nativeSrc": "5380:52:37", + "nodeType": "YulFunctionCall", + "src": "5380:52:37" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "5370:6:37", + "nodeType": "YulIdentifier", + "src": "5370:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_bytes32t_addresst_addresst_uint64", + "nativeSrc": "4540:909:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4611:9:37", + "nodeType": "YulTypedName", + "src": "4611:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4622:7:37", + "nodeType": "YulTypedName", + "src": "4622:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4634:6:37", + "nodeType": "YulTypedName", + "src": "4634:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4642:6:37", + "nodeType": "YulTypedName", + "src": "4642:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4650:6:37", + "nodeType": "YulTypedName", + "src": "4650:6:37", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "4658:6:37", + "nodeType": "YulTypedName", + "src": "4658:6:37", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "4666:6:37", + "nodeType": "YulTypedName", + "src": "4666:6:37", + "type": "" + } + ], + "src": "4540:909:37" + }, + { + "body": { + "nativeSrc": "5497:48:37", + "nodeType": "YulBlock", + "src": "5497:48:37", + "statements": [ + { + "nativeSrc": "5507:32:37", + "nodeType": "YulAssignment", + "src": "5507:32:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5532:5:37", + "nodeType": "YulIdentifier", + "src": "5532:5:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5525:6:37", + "nodeType": "YulIdentifier", + "src": "5525:6:37" + }, + "nativeSrc": "5525:13:37", + "nodeType": "YulFunctionCall", + "src": "5525:13:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5518:6:37", + "nodeType": "YulIdentifier", + "src": "5518:6:37" + }, + "nativeSrc": "5518:21:37", + "nodeType": "YulFunctionCall", + "src": "5518:21:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "5507:7:37", + "nodeType": "YulIdentifier", + "src": "5507:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "5455:90:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5479:5:37", + "nodeType": "YulTypedName", + "src": "5479:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "5489:7:37", + "nodeType": "YulTypedName", + "src": "5489:7:37", + "type": "" + } + ], + "src": "5455:90:37" + }, + { + "body": { + "nativeSrc": "5591:76:37", + "nodeType": "YulBlock", + "src": "5591:76:37", + "statements": [ + { + "body": { + "nativeSrc": "5645:16:37", + "nodeType": "YulBlock", + "src": "5645:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5654:1:37", + "nodeType": "YulLiteral", + "src": "5654:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5657:1:37", + "nodeType": "YulLiteral", + "src": "5657:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5647:6:37", + "nodeType": "YulIdentifier", + "src": "5647:6:37" + }, + "nativeSrc": "5647:12:37", + "nodeType": "YulFunctionCall", + "src": "5647:12:37" + }, + "nativeSrc": "5647:12:37", + "nodeType": "YulExpressionStatement", + "src": "5647:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5614:5:37", + "nodeType": "YulIdentifier", + "src": "5614:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5636:5:37", + "nodeType": "YulIdentifier", + "src": "5636:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "5621:14:37", + "nodeType": "YulIdentifier", + "src": "5621:14:37" + }, + "nativeSrc": "5621:21:37", + "nodeType": "YulFunctionCall", + "src": "5621:21:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "5611:2:37", + "nodeType": "YulIdentifier", + "src": "5611:2:37" + }, + "nativeSrc": "5611:32:37", + "nodeType": "YulFunctionCall", + "src": "5611:32:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5604:6:37", + "nodeType": "YulIdentifier", + "src": "5604:6:37" + }, + "nativeSrc": "5604:40:37", + "nodeType": "YulFunctionCall", + "src": "5604:40:37" + }, + "nativeSrc": "5601:60:37", + "nodeType": "YulIf", + "src": "5601:60:37" + } + ] + }, + "name": "validator_revert_t_bool", + "nativeSrc": "5551:116:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5584:5:37", + "nodeType": "YulTypedName", + "src": "5584:5:37", + "type": "" + } + ], + "src": "5551:116:37" + }, + { + "body": { + "nativeSrc": "5722:84:37", + "nodeType": "YulBlock", + "src": "5722:84:37", + "statements": [ + { + "nativeSrc": "5732:29:37", + "nodeType": "YulAssignment", + "src": "5732:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5754:6:37", + "nodeType": "YulIdentifier", + "src": "5754:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5741:12:37", + "nodeType": "YulIdentifier", + "src": "5741:12:37" + }, + "nativeSrc": "5741:20:37", + "nodeType": "YulFunctionCall", + "src": "5741:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "5732:5:37", + "nodeType": "YulIdentifier", + "src": "5732:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5794:5:37", + "nodeType": "YulIdentifier", + "src": "5794:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nativeSrc": "5770:23:37", + "nodeType": "YulIdentifier", + "src": "5770:23:37" + }, + "nativeSrc": "5770:30:37", + "nodeType": "YulFunctionCall", + "src": "5770:30:37" + }, + "nativeSrc": "5770:30:37", + "nodeType": "YulExpressionStatement", + "src": "5770:30:37" + } + ] + }, + "name": "abi_decode_t_bool", + "nativeSrc": "5673:133:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "5700:6:37", + "nodeType": "YulTypedName", + "src": "5700:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5708:3:37", + "nodeType": "YulTypedName", + "src": "5708:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "5716:5:37", + "nodeType": "YulTypedName", + "src": "5716:5:37", + "type": "" + } + ], + "src": "5673:133:37" + }, + { + "body": { + "nativeSrc": "5892:388:37", + "nodeType": "YulBlock", + "src": "5892:388:37", + "statements": [ + { + "body": { + "nativeSrc": "5938:83:37", + "nodeType": "YulBlock", + "src": "5938:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5940:77:37", + "nodeType": "YulIdentifier", + "src": "5940:77:37" + }, + "nativeSrc": "5940:79:37", + "nodeType": "YulFunctionCall", + "src": "5940:79:37" + }, + "nativeSrc": "5940:79:37", + "nodeType": "YulExpressionStatement", + "src": "5940:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5913:7:37", + "nodeType": "YulIdentifier", + "src": "5913:7:37" + }, + { + "name": "headStart", + "nativeSrc": "5922:9:37", + "nodeType": "YulIdentifier", + "src": "5922:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5909:3:37", + "nodeType": "YulIdentifier", + "src": "5909:3:37" + }, + "nativeSrc": "5909:23:37", + "nodeType": "YulFunctionCall", + "src": "5909:23:37" + }, + { + "kind": "number", + "nativeSrc": "5934:2:37", + "nodeType": "YulLiteral", + "src": "5934:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5905:3:37", + "nodeType": "YulIdentifier", + "src": "5905:3:37" + }, + "nativeSrc": "5905:32:37", + "nodeType": "YulFunctionCall", + "src": "5905:32:37" + }, + "nativeSrc": "5902:119:37", + "nodeType": "YulIf", + "src": "5902:119:37" + }, + { + "nativeSrc": "6031:117:37", + "nodeType": "YulBlock", + "src": "6031:117:37", + "statements": [ + { + "nativeSrc": "6046:15:37", + "nodeType": "YulVariableDeclaration", + "src": "6046:15:37", + "value": { + "kind": "number", + "nativeSrc": "6060:1:37", + "nodeType": "YulLiteral", + "src": "6060:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6050:6:37", + "nodeType": "YulTypedName", + "src": "6050:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6075:63:37", + "nodeType": "YulAssignment", + "src": "6075:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6110:9:37", + "nodeType": "YulIdentifier", + "src": "6110:9:37" + }, + { + "name": "offset", + "nativeSrc": "6121:6:37", + "nodeType": "YulIdentifier", + "src": "6121:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6106:3:37", + "nodeType": "YulIdentifier", + "src": "6106:3:37" + }, + "nativeSrc": "6106:22:37", + "nodeType": "YulFunctionCall", + "src": "6106:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "6130:7:37", + "nodeType": "YulIdentifier", + "src": "6130:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6085:20:37", + "nodeType": "YulIdentifier", + "src": "6085:20:37" + }, + "nativeSrc": "6085:53:37", + "nodeType": "YulFunctionCall", + "src": "6085:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6075:6:37", + "nodeType": "YulIdentifier", + "src": "6075:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "6158:115:37", + "nodeType": "YulBlock", + "src": "6158:115:37", + "statements": [ + { + "nativeSrc": "6173:16:37", + "nodeType": "YulVariableDeclaration", + "src": "6173:16:37", + "value": { + "kind": "number", + "nativeSrc": "6187:2:37", + "nodeType": "YulLiteral", + "src": "6187:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6177:6:37", + "nodeType": "YulTypedName", + "src": "6177:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6203:60:37", + "nodeType": "YulAssignment", + "src": "6203:60:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6235:9:37", + "nodeType": "YulIdentifier", + "src": "6235:9:37" + }, + { + "name": "offset", + "nativeSrc": "6246:6:37", + "nodeType": "YulIdentifier", + "src": "6246:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6231:3:37", + "nodeType": "YulIdentifier", + "src": "6231:3:37" + }, + "nativeSrc": "6231:22:37", + "nodeType": "YulFunctionCall", + "src": "6231:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "6255:7:37", + "nodeType": "YulIdentifier", + "src": "6255:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nativeSrc": "6213:17:37", + "nodeType": "YulIdentifier", + "src": "6213:17:37" + }, + "nativeSrc": "6213:50:37", + "nodeType": "YulFunctionCall", + "src": "6213:50:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "6203:6:37", + "nodeType": "YulIdentifier", + "src": "6203:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "5812:468:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5854:9:37", + "nodeType": "YulTypedName", + "src": "5854:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5865:7:37", + "nodeType": "YulTypedName", + "src": "5865:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5877:6:37", + "nodeType": "YulTypedName", + "src": "5877:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5885:6:37", + "nodeType": "YulTypedName", + "src": "5885:6:37", + "type": "" + } + ], + "src": "5812:468:37" + }, + { + "body": { + "nativeSrc": "6402:647:37", + "nodeType": "YulBlock", + "src": "6402:647:37", + "statements": [ + { + "body": { + "nativeSrc": "6449:83:37", + "nodeType": "YulBlock", + "src": "6449:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "6451:77:37", + "nodeType": "YulIdentifier", + "src": "6451:77:37" + }, + "nativeSrc": "6451:79:37", + "nodeType": "YulFunctionCall", + "src": "6451:79:37" + }, + "nativeSrc": "6451:79:37", + "nodeType": "YulExpressionStatement", + "src": "6451:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6423:7:37", + "nodeType": "YulIdentifier", + "src": "6423:7:37" + }, + { + "name": "headStart", + "nativeSrc": "6432:9:37", + "nodeType": "YulIdentifier", + "src": "6432:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6419:3:37", + "nodeType": "YulIdentifier", + "src": "6419:3:37" + }, + "nativeSrc": "6419:23:37", + "nodeType": "YulFunctionCall", + "src": "6419:23:37" + }, + { + "kind": "number", + "nativeSrc": "6444:3:37", + "nodeType": "YulLiteral", + "src": "6444:3:37", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6415:3:37", + "nodeType": "YulIdentifier", + "src": "6415:3:37" + }, + "nativeSrc": "6415:33:37", + "nodeType": "YulFunctionCall", + "src": "6415:33:37" + }, + "nativeSrc": "6412:120:37", + "nodeType": "YulIf", + "src": "6412:120:37" + }, + { + "nativeSrc": "6542:117:37", + "nodeType": "YulBlock", + "src": "6542:117:37", + "statements": [ + { + "nativeSrc": "6557:15:37", + "nodeType": "YulVariableDeclaration", + "src": "6557:15:37", + "value": { + "kind": "number", + "nativeSrc": "6571:1:37", + "nodeType": "YulLiteral", + "src": "6571:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6561:6:37", + "nodeType": "YulTypedName", + "src": "6561:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6586:63:37", + "nodeType": "YulAssignment", + "src": "6586:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6621:9:37", + "nodeType": "YulIdentifier", + "src": "6621:9:37" + }, + { + "name": "offset", + "nativeSrc": "6632:6:37", + "nodeType": "YulIdentifier", + "src": "6632:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6617:3:37", + "nodeType": "YulIdentifier", + "src": "6617:3:37" + }, + "nativeSrc": "6617:22:37", + "nodeType": "YulFunctionCall", + "src": "6617:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "6641:7:37", + "nodeType": "YulIdentifier", + "src": "6641:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "6596:20:37", + "nodeType": "YulIdentifier", + "src": "6596:20:37" + }, + "nativeSrc": "6596:53:37", + "nodeType": "YulFunctionCall", + "src": "6596:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6586:6:37", + "nodeType": "YulIdentifier", + "src": "6586:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "6669:118:37", + "nodeType": "YulBlock", + "src": "6669:118:37", + "statements": [ + { + "nativeSrc": "6684:16:37", + "nodeType": "YulVariableDeclaration", + "src": "6684:16:37", + "value": { + "kind": "number", + "nativeSrc": "6698:2:37", + "nodeType": "YulLiteral", + "src": "6698:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6688:6:37", + "nodeType": "YulTypedName", + "src": "6688:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6714:63:37", + "nodeType": "YulAssignment", + "src": "6714:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6749:9:37", + "nodeType": "YulIdentifier", + "src": "6749:9:37" + }, + { + "name": "offset", + "nativeSrc": "6760:6:37", + "nodeType": "YulIdentifier", + "src": "6760:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6745:3:37", + "nodeType": "YulIdentifier", + "src": "6745:3:37" + }, + "nativeSrc": "6745:22:37", + "nodeType": "YulFunctionCall", + "src": "6745:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "6769:7:37", + "nodeType": "YulIdentifier", + "src": "6769:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6724:20:37", + "nodeType": "YulIdentifier", + "src": "6724:20:37" + }, + "nativeSrc": "6724:53:37", + "nodeType": "YulFunctionCall", + "src": "6724:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "6714:6:37", + "nodeType": "YulIdentifier", + "src": "6714:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "6797:118:37", + "nodeType": "YulBlock", + "src": "6797:118:37", + "statements": [ + { + "nativeSrc": "6812:16:37", + "nodeType": "YulVariableDeclaration", + "src": "6812:16:37", + "value": { + "kind": "number", + "nativeSrc": "6826:2:37", + "nodeType": "YulLiteral", + "src": "6826:2:37", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6816:6:37", + "nodeType": "YulTypedName", + "src": "6816:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6842:63:37", + "nodeType": "YulAssignment", + "src": "6842:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6877:9:37", + "nodeType": "YulIdentifier", + "src": "6877:9:37" + }, + { + "name": "offset", + "nativeSrc": "6888:6:37", + "nodeType": "YulIdentifier", + "src": "6888:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6873:3:37", + "nodeType": "YulIdentifier", + "src": "6873:3:37" + }, + "nativeSrc": "6873:22:37", + "nodeType": "YulFunctionCall", + "src": "6873:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "6897:7:37", + "nodeType": "YulIdentifier", + "src": "6897:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6852:20:37", + "nodeType": "YulIdentifier", + "src": "6852:20:37" + }, + "nativeSrc": "6852:53:37", + "nodeType": "YulFunctionCall", + "src": "6852:53:37" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "6842:6:37", + "nodeType": "YulIdentifier", + "src": "6842:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "6925:117:37", + "nodeType": "YulBlock", + "src": "6925:117:37", + "statements": [ + { + "nativeSrc": "6940:16:37", + "nodeType": "YulVariableDeclaration", + "src": "6940:16:37", + "value": { + "kind": "number", + "nativeSrc": "6954:2:37", + "nodeType": "YulLiteral", + "src": "6954:2:37", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6944:6:37", + "nodeType": "YulTypedName", + "src": "6944:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6970:62:37", + "nodeType": "YulAssignment", + "src": "6970:62:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7004:9:37", + "nodeType": "YulIdentifier", + "src": "7004:9:37" + }, + { + "name": "offset", + "nativeSrc": "7015:6:37", + "nodeType": "YulIdentifier", + "src": "7015:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7000:3:37", + "nodeType": "YulIdentifier", + "src": "7000:3:37" + }, + "nativeSrc": "7000:22:37", + "nodeType": "YulFunctionCall", + "src": "7000:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "7024:7:37", + "nodeType": "YulIdentifier", + "src": "7024:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint64", + "nativeSrc": "6980:19:37", + "nodeType": "YulIdentifier", + "src": "6980:19:37" + }, + "nativeSrc": "6980:52:37", + "nodeType": "YulFunctionCall", + "src": "6980:52:37" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "6970:6:37", + "nodeType": "YulIdentifier", + "src": "6970:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_addresst_addresst_uint64", + "nativeSrc": "6286:763:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6348:9:37", + "nodeType": "YulTypedName", + "src": "6348:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "6359:7:37", + "nodeType": "YulTypedName", + "src": "6359:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6371:6:37", + "nodeType": "YulTypedName", + "src": "6371:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6379:6:37", + "nodeType": "YulTypedName", + "src": "6379:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "6387:6:37", + "nodeType": "YulTypedName", + "src": "6387:6:37", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "6395:6:37", + "nodeType": "YulTypedName", + "src": "6395:6:37", + "type": "" + } + ], + "src": "6286:763:37" + }, + { + "body": { + "nativeSrc": "7138:391:37", + "nodeType": "YulBlock", + "src": "7138:391:37", + "statements": [ + { + "body": { + "nativeSrc": "7184:83:37", + "nodeType": "YulBlock", + "src": "7184:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "7186:77:37", + "nodeType": "YulIdentifier", + "src": "7186:77:37" + }, + "nativeSrc": "7186:79:37", + "nodeType": "YulFunctionCall", + "src": "7186:79:37" + }, + "nativeSrc": "7186:79:37", + "nodeType": "YulExpressionStatement", + "src": "7186:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "7159:7:37", + "nodeType": "YulIdentifier", + "src": "7159:7:37" + }, + { + "name": "headStart", + "nativeSrc": "7168:9:37", + "nodeType": "YulIdentifier", + "src": "7168:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7155:3:37", + "nodeType": "YulIdentifier", + "src": "7155:3:37" + }, + "nativeSrc": "7155:23:37", + "nodeType": "YulFunctionCall", + "src": "7155:23:37" + }, + { + "kind": "number", + "nativeSrc": "7180:2:37", + "nodeType": "YulLiteral", + "src": "7180:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7151:3:37", + "nodeType": "YulIdentifier", + "src": "7151:3:37" + }, + "nativeSrc": "7151:32:37", + "nodeType": "YulFunctionCall", + "src": "7151:32:37" + }, + "nativeSrc": "7148:119:37", + "nodeType": "YulIf", + "src": "7148:119:37" + }, + { + "nativeSrc": "7277:117:37", + "nodeType": "YulBlock", + "src": "7277:117:37", + "statements": [ + { + "nativeSrc": "7292:15:37", + "nodeType": "YulVariableDeclaration", + "src": "7292:15:37", + "value": { + "kind": "number", + "nativeSrc": "7306:1:37", + "nodeType": "YulLiteral", + "src": "7306:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "7296:6:37", + "nodeType": "YulTypedName", + "src": "7296:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "7321:63:37", + "nodeType": "YulAssignment", + "src": "7321:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7356:9:37", + "nodeType": "YulIdentifier", + "src": "7356:9:37" + }, + { + "name": "offset", + "nativeSrc": "7367:6:37", + "nodeType": "YulIdentifier", + "src": "7367:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7352:3:37", + "nodeType": "YulIdentifier", + "src": "7352:3:37" + }, + "nativeSrc": "7352:22:37", + "nodeType": "YulFunctionCall", + "src": "7352:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "7376:7:37", + "nodeType": "YulIdentifier", + "src": "7376:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "7331:20:37", + "nodeType": "YulIdentifier", + "src": "7331:20:37" + }, + "nativeSrc": "7331:53:37", + "nodeType": "YulFunctionCall", + "src": "7331:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "7321:6:37", + "nodeType": "YulIdentifier", + "src": "7321:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "7404:118:37", + "nodeType": "YulBlock", + "src": "7404:118:37", + "statements": [ + { + "nativeSrc": "7419:16:37", + "nodeType": "YulVariableDeclaration", + "src": "7419:16:37", + "value": { + "kind": "number", + "nativeSrc": "7433:2:37", + "nodeType": "YulLiteral", + "src": "7433:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "7423:6:37", + "nodeType": "YulTypedName", + "src": "7423:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "7449:63:37", + "nodeType": "YulAssignment", + "src": "7449:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7484:9:37", + "nodeType": "YulIdentifier", + "src": "7484:9:37" + }, + { + "name": "offset", + "nativeSrc": "7495:6:37", + "nodeType": "YulIdentifier", + "src": "7495:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7480:3:37", + "nodeType": "YulIdentifier", + "src": "7480:3:37" + }, + "nativeSrc": "7480:22:37", + "nodeType": "YulFunctionCall", + "src": "7480:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "7504:7:37", + "nodeType": "YulIdentifier", + "src": "7504:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "7459:20:37", + "nodeType": "YulIdentifier", + "src": "7459:20:37" + }, + "nativeSrc": "7459:53:37", + "nodeType": "YulFunctionCall", + "src": "7459:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "7449:6:37", + "nodeType": "YulIdentifier", + "src": "7449:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "7055:474:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7100:9:37", + "nodeType": "YulTypedName", + "src": "7100:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7111:7:37", + "nodeType": "YulTypedName", + "src": "7111:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "7123:6:37", + "nodeType": "YulTypedName", + "src": "7123:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "7131:6:37", + "nodeType": "YulTypedName", + "src": "7131:6:37", + "type": "" + } + ], + "src": "7055:474:37" + }, + { + "body": { + "nativeSrc": "7594:50:37", + "nodeType": "YulBlock", + "src": "7594:50:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7611:3:37", + "nodeType": "YulIdentifier", + "src": "7611:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7631:5:37", + "nodeType": "YulIdentifier", + "src": "7631:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "7616:14:37", + "nodeType": "YulIdentifier", + "src": "7616:14:37" + }, + "nativeSrc": "7616:21:37", + "nodeType": "YulFunctionCall", + "src": "7616:21:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7604:6:37", + "nodeType": "YulIdentifier", + "src": "7604:6:37" + }, + "nativeSrc": "7604:34:37", + "nodeType": "YulFunctionCall", + "src": "7604:34:37" + }, + "nativeSrc": "7604:34:37", + "nodeType": "YulExpressionStatement", + "src": "7604:34:37" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "7535:109:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7582:5:37", + "nodeType": "YulTypedName", + "src": "7582:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "7589:3:37", + "nodeType": "YulTypedName", + "src": "7589:3:37", + "type": "" + } + ], + "src": "7535:109:37" + }, + { + "body": { + "nativeSrc": "7742:118:37", + "nodeType": "YulBlock", + "src": "7742:118:37", + "statements": [ + { + "nativeSrc": "7752:26:37", + "nodeType": "YulAssignment", + "src": "7752:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7764:9:37", + "nodeType": "YulIdentifier", + "src": "7764:9:37" + }, + { + "kind": "number", + "nativeSrc": "7775:2:37", + "nodeType": "YulLiteral", + "src": "7775:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7760:3:37", + "nodeType": "YulIdentifier", + "src": "7760:3:37" + }, + "nativeSrc": "7760:18:37", + "nodeType": "YulFunctionCall", + "src": "7760:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7752:4:37", + "nodeType": "YulIdentifier", + "src": "7752:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7826:6:37", + "nodeType": "YulIdentifier", + "src": "7826:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7839:9:37", + "nodeType": "YulIdentifier", + "src": "7839:9:37" + }, + { + "kind": "number", + "nativeSrc": "7850:1:37", + "nodeType": "YulLiteral", + "src": "7850:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7835:3:37", + "nodeType": "YulIdentifier", + "src": "7835:3:37" + }, + "nativeSrc": "7835:17:37", + "nodeType": "YulFunctionCall", + "src": "7835:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "7788:37:37", + "nodeType": "YulIdentifier", + "src": "7788:37:37" + }, + "nativeSrc": "7788:65:37", + "nodeType": "YulFunctionCall", + "src": "7788:65:37" + }, + "nativeSrc": "7788:65:37", + "nodeType": "YulExpressionStatement", + "src": "7788:65:37" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "7650:210:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7714:9:37", + "nodeType": "YulTypedName", + "src": "7714:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7726:6:37", + "nodeType": "YulTypedName", + "src": "7726:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7737:4:37", + "nodeType": "YulTypedName", + "src": "7737:4:37", + "type": "" + } + ], + "src": "7650:210:37" + }, + { + "body": { + "nativeSrc": "7913:32:37", + "nodeType": "YulBlock", + "src": "7913:32:37", + "statements": [ + { + "nativeSrc": "7923:16:37", + "nodeType": "YulAssignment", + "src": "7923:16:37", + "value": { + "name": "value", + "nativeSrc": "7934:5:37", + "nodeType": "YulIdentifier", + "src": "7934:5:37" + }, + "variableNames": [ + { + "name": "aligned", + "nativeSrc": "7923:7:37", + "nodeType": "YulIdentifier", + "src": "7923:7:37" + } + ] + } + ] + }, + "name": "leftAlign_t_bytes32", + "nativeSrc": "7866:79:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7895:5:37", + "nodeType": "YulTypedName", + "src": "7895:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nativeSrc": "7905:7:37", + "nodeType": "YulTypedName", + "src": "7905:7:37", + "type": "" + } + ], + "src": "7866:79:37" + }, + { + "body": { + "nativeSrc": "8034:74:37", + "nodeType": "YulBlock", + "src": "8034:74:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8051:3:37", + "nodeType": "YulIdentifier", + "src": "8051:3:37" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8094:5:37", + "nodeType": "YulIdentifier", + "src": "8094:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "8076:17:37", + "nodeType": "YulIdentifier", + "src": "8076:17:37" + }, + "nativeSrc": "8076:24:37", + "nodeType": "YulFunctionCall", + "src": "8076:24:37" + } + ], + "functionName": { + "name": "leftAlign_t_bytes32", + "nativeSrc": "8056:19:37", + "nodeType": "YulIdentifier", + "src": "8056:19:37" + }, + "nativeSrc": "8056:45:37", + "nodeType": "YulFunctionCall", + "src": "8056:45:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8044:6:37", + "nodeType": "YulIdentifier", + "src": "8044:6:37" + }, + "nativeSrc": "8044:58:37", + "nodeType": "YulFunctionCall", + "src": "8044:58:37" + }, + "nativeSrc": "8044:58:37", + "nodeType": "YulExpressionStatement", + "src": "8044:58:37" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", + "nativeSrc": "7951:157:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8022:5:37", + "nodeType": "YulTypedName", + "src": "8022:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "8029:3:37", + "nodeType": "YulTypedName", + "src": "8029:3:37", + "type": "" + } + ], + "src": "7951:157:37" + }, + { + "body": { + "nativeSrc": "8258:253:37", + "nodeType": "YulBlock", + "src": "8258:253:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8331:6:37", + "nodeType": "YulIdentifier", + "src": "8331:6:37" + }, + { + "name": "pos", + "nativeSrc": "8340:3:37", + "nodeType": "YulIdentifier", + "src": "8340:3:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", + "nativeSrc": "8269:61:37", + "nodeType": "YulIdentifier", + "src": "8269:61:37" + }, + "nativeSrc": "8269:75:37", + "nodeType": "YulFunctionCall", + "src": "8269:75:37" + }, + "nativeSrc": "8269:75:37", + "nodeType": "YulExpressionStatement", + "src": "8269:75:37" + }, + { + "nativeSrc": "8353:19:37", + "nodeType": "YulAssignment", + "src": "8353:19:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8364:3:37", + "nodeType": "YulIdentifier", + "src": "8364:3:37" + }, + { + "kind": "number", + "nativeSrc": "8369:2:37", + "nodeType": "YulLiteral", + "src": "8369:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8360:3:37", + "nodeType": "YulIdentifier", + "src": "8360:3:37" + }, + "nativeSrc": "8360:12:37", + "nodeType": "YulFunctionCall", + "src": "8360:12:37" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "8353:3:37", + "nodeType": "YulIdentifier", + "src": "8353:3:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "8444:6:37", + "nodeType": "YulIdentifier", + "src": "8444:6:37" + }, + { + "name": "pos", + "nativeSrc": "8453:3:37", + "nodeType": "YulIdentifier", + "src": "8453:3:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", + "nativeSrc": "8382:61:37", + "nodeType": "YulIdentifier", + "src": "8382:61:37" + }, + "nativeSrc": "8382:75:37", + "nodeType": "YulFunctionCall", + "src": "8382:75:37" + }, + "nativeSrc": "8382:75:37", + "nodeType": "YulExpressionStatement", + "src": "8382:75:37" + }, + { + "nativeSrc": "8466:19:37", + "nodeType": "YulAssignment", + "src": "8466:19:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8477:3:37", + "nodeType": "YulIdentifier", + "src": "8477:3:37" + }, + { + "kind": "number", + "nativeSrc": "8482:2:37", + "nodeType": "YulLiteral", + "src": "8482:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8473:3:37", + "nodeType": "YulIdentifier", + "src": "8473:3:37" + }, + "nativeSrc": "8473:12:37", + "nodeType": "YulFunctionCall", + "src": "8473:12:37" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "8466:3:37", + "nodeType": "YulIdentifier", + "src": "8466:3:37" + } + ] + }, + { + "nativeSrc": "8495:10:37", + "nodeType": "YulAssignment", + "src": "8495:10:37", + "value": { + "name": "pos", + "nativeSrc": "8502:3:37", + "nodeType": "YulIdentifier", + "src": "8502:3:37" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "8495:3:37", + "nodeType": "YulIdentifier", + "src": "8495:3:37" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "8114:397:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "8229:3:37", + "nodeType": "YulTypedName", + "src": "8229:3:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8235:6:37", + "nodeType": "YulTypedName", + "src": "8235:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8243:6:37", + "nodeType": "YulTypedName", + "src": "8243:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "8254:3:37", + "nodeType": "YulTypedName", + "src": "8254:3:37", + "type": "" + } + ], + "src": "8114:397:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_bytes32t_bytes32t_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\n }\n\n function abi_decode_tuple_t_bytes32t_uint64(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_bytes32t_addresst_addresst_uint64(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_addresst_addresst_uint64(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146101b15780635ef2c7f0146101cd578063a22cb465146101e9578063cf40882314610205578063e985e9c514610221578063f79fe53814610251576100b4565b80630178b8bf146100b957806302571be3146100e957806306ab59231461011957806314ab90381461014957806316a25cbd146101655780631896f70a14610195575b600080fd5b6100d360048036038101906100ce9190610dda565b610281565b6040516100e09190610e48565b60405180910390f35b61010360048036038101906100fe9190610dda565b6102c0565b6040516101109190610e48565b60405180910390f35b610133600480360381019061012e9190610e8f565b610342565b6040516101409190610ef1565b60405180910390f35b610163600480360381019061015e9190610f4c565b6104c5565b005b61017f600480360381019061017a9190610dda565b610643565b60405161018c9190610f9b565b60405180910390f35b6101af60048036038101906101aa9190610fb6565b610676565b005b6101cb60048036038101906101c69190610fb6565b61080c565b005b6101e760048036038101906101e29190610ff6565b610958565b005b61020360048036038101906101fe91906110a9565b61097a565b005b61021f600480360381019061021a91906110e9565b610a77565b005b61023b60048036038101906102369190611150565b610a92565b604051610248919061119f565b60405180910390f35b61026b60048036038101906102669190610dda565b610b26565b604051610278919061119f565b60405180910390f35b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361033857600091505061033d565b809150505b919050565b600083600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061043f5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61044857600080fd5b6000868660405160200161045d9291906111db565b60405160208183030381529060405280519060200120905061047f8186610b94565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82876040516104b09190610e48565b60405180910390a38093505050509392505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806105c05750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6105c957600080fd5b837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68846040516105f99190610f9b565b60405180910390a28260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050565b600080600083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806107715750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61077a57600080fd5b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0846040516107aa9190610e48565b60405180910390a28260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806109075750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61091057600080fd5b61091a8484610b94565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2668460405161094a9190610e48565b60405180910390a250505050565b6000610965868686610342565b9050610972818484610bec565b505050505050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a6b919061119f565b60405180910390a35050565b610a81848461080c565b610a8c848383610bec565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b8060008084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ce1578160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051610cd89190610e48565b60405180910390a25b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614610d9a578060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051610d919190610f9b565b60405180910390a25b505050565b600080fd5b6000819050919050565b610db781610da4565b8114610dc257600080fd5b50565b600081359050610dd481610dae565b92915050565b600060208284031215610df057610def610d9f565b5b6000610dfe84828501610dc5565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e3282610e07565b9050919050565b610e4281610e27565b82525050565b6000602082019050610e5d6000830184610e39565b92915050565b610e6c81610e27565b8114610e7757600080fd5b50565b600081359050610e8981610e63565b92915050565b600080600060608486031215610ea857610ea7610d9f565b5b6000610eb686828701610dc5565b9350506020610ec786828701610dc5565b9250506040610ed886828701610e7a565b9150509250925092565b610eeb81610da4565b82525050565b6000602082019050610f066000830184610ee2565b92915050565b600067ffffffffffffffff82169050919050565b610f2981610f0c565b8114610f3457600080fd5b50565b600081359050610f4681610f20565b92915050565b60008060408385031215610f6357610f62610d9f565b5b6000610f7185828601610dc5565b9250506020610f8285828601610f37565b9150509250929050565b610f9581610f0c565b82525050565b6000602082019050610fb06000830184610f8c565b92915050565b60008060408385031215610fcd57610fcc610d9f565b5b6000610fdb85828601610dc5565b9250506020610fec85828601610e7a565b9150509250929050565b600080600080600060a0868803121561101257611011610d9f565b5b600061102088828901610dc5565b955050602061103188828901610dc5565b945050604061104288828901610e7a565b935050606061105388828901610e7a565b925050608061106488828901610f37565b9150509295509295909350565b60008115159050919050565b61108681611071565b811461109157600080fd5b50565b6000813590506110a38161107d565b92915050565b600080604083850312156110c0576110bf610d9f565b5b60006110ce85828601610e7a565b92505060206110df85828601611094565b9150509250929050565b6000806000806080858703121561110357611102610d9f565b5b600061111187828801610dc5565b945050602061112287828801610e7a565b935050604061113387828801610e7a565b925050606061114487828801610f37565b91505092959194509250565b6000806040838503121561116757611166610d9f565b5b600061117585828601610e7a565b925050602061118685828601610e7a565b9150509250929050565b61119981611071565b82525050565b60006020820190506111b46000830184611190565b92915050565b6000819050919050565b6111d56111d082610da4565b6111ba565b82525050565b60006111e782856111c4565b6020820191506111f782846111c4565b602082019150819050939250505056fea26469706673582212205c28003d9ca2f724222333aa49478b080394e9874183ab5f04037012b21d32b864736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5B0FC9C3 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x5B0FC9C3 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0x5EF2C7F0 EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0xCF408823 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0xF79FE538 EQ PUSH2 0x251 JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x178B8BF EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x2571BE3 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x6AB5923 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x14AB9038 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0x16A25CBD EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x1896F70A EQ PUSH2 0x195 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCE SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0x281 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE0 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x103 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFE SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x110 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x133 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12E SWAP2 SWAP1 PUSH2 0xE8F JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x140 SWAP2 SWAP1 PUSH2 0xEF1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x163 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15E SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x4C5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17A SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0xFB6 JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0xFB6 JUMP JUMPDEST PUSH2 0x80C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0xFF6 JUMP JUMPDEST PUSH2 0x958 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FE SWAP2 SWAP1 PUSH2 0x10A9 JUMP JUMPDEST PUSH2 0x97A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x21F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21A SWAP2 SWAP1 PUSH2 0x10E9 JUMP JUMPDEST PUSH2 0xA77 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x236 SWAP2 SWAP1 PUSH2 0x1150 JUMP JUMPDEST PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x266 SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0xB26 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x338 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x33D JUMP JUMPDEST DUP1 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x43F JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x45D SWAP3 SWAP2 SWAP1 PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x47F DUP2 DUP7 PUSH2 0xB94 JUMP JUMPDEST DUP6 DUP8 PUSH32 0xCE0457FE73731F824CC272376169235128C118B49D344817417C6D108D155E82 DUP8 PUSH1 0x40 MLOAD PUSH2 0x4B0 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x5C0 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH32 0x1D4F9BBFC9CAB89D66E1A1562F2233CCBF1308CB4F63DE2EAD5787ADDDB8FA68 DUP5 PUSH1 0x40 MLOAD PUSH2 0x5F9 SWAP2 SWAP1 PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x771 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x77A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH32 0x335721B01866DC23FBEE8B6B2C7B1E14D6F05C28CD35A2C934239F94095602A0 DUP5 PUSH1 0x40 MLOAD PUSH2 0x7AA SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x907 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x910 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91A DUP5 DUP5 PUSH2 0xB94 JUMP JUMPDEST DUP4 PUSH32 0xD4735D920B0F87494915F556DD9B54C8F309026070CAEA5C737245152564D266 DUP5 PUSH1 0x40 MLOAD PUSH2 0x94A SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x965 DUP7 DUP7 DUP7 PUSH2 0x342 JUMP JUMPDEST SWAP1 POP PUSH2 0x972 DUP2 DUP5 DUP5 PUSH2 0xBEC JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0xA6B SWAP2 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xA81 DUP5 DUP5 PUSH2 0x80C JUMP JUMPDEST PUSH2 0xA8C DUP5 DUP4 DUP4 PUSH2 0xBEC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCE1 JUMPI DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH32 0x335721B01866DC23FBEE8B6B2C7B1E14D6F05C28CD35A2C934239F94095602A0 DUP4 PUSH1 0x40 MLOAD PUSH2 0xCD8 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD9A JUMPI DUP1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH32 0x1D4F9BBFC9CAB89D66E1A1562F2233CCBF1308CB4F63DE2EAD5787ADDDB8FA68 DUP3 PUSH1 0x40 MLOAD PUSH2 0xD91 SWAP2 SWAP1 PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB7 DUP2 PUSH2 0xDA4 JUMP JUMPDEST DUP2 EQ PUSH2 0xDC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDD4 DUP2 PUSH2 0xDAE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDF0 JUMPI PUSH2 0xDEF PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDFE DUP5 DUP3 DUP6 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE32 DUP3 PUSH2 0xE07 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE42 DUP2 PUSH2 0xE27 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE5D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE39 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE6C DUP2 PUSH2 0xE27 JUMP JUMPDEST DUP2 EQ PUSH2 0xE77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE89 DUP2 PUSH2 0xE63 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA7 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEB6 DUP7 DUP3 DUP8 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xEC7 DUP7 DUP3 DUP8 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xED8 DUP7 DUP3 DUP8 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0xEEB DUP2 PUSH2 0xDA4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF06 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEE2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF29 DUP2 PUSH2 0xF0C JUMP JUMPDEST DUP2 EQ PUSH2 0xF34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF46 DUP2 PUSH2 0xF20 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF62 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF71 DUP6 DUP3 DUP7 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF82 DUP6 DUP3 DUP7 ADD PUSH2 0xF37 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xF95 DUP2 PUSH2 0xF0C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFB0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF8C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFCD JUMPI PUSH2 0xFCC PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFDB DUP6 DUP3 DUP7 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xFEC DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1012 JUMPI PUSH2 0x1011 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1020 DUP9 DUP3 DUP10 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1031 DUP9 DUP3 DUP10 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1042 DUP9 DUP3 DUP10 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1053 DUP9 DUP3 DUP10 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x1064 DUP9 DUP3 DUP10 ADD PUSH2 0xF37 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1086 DUP2 PUSH2 0x1071 JUMP JUMPDEST DUP2 EQ PUSH2 0x1091 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10A3 DUP2 PUSH2 0x107D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10C0 JUMPI PUSH2 0x10BF PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10CE DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x10DF DUP6 DUP3 DUP7 ADD PUSH2 0x1094 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1103 JUMPI PUSH2 0x1102 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1111 DUP8 DUP3 DUP9 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1122 DUP8 DUP3 DUP9 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x1133 DUP8 DUP3 DUP9 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x1144 DUP8 DUP3 DUP9 ADD PUSH2 0xF37 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1167 JUMPI PUSH2 0x1166 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1186 DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1199 DUP2 PUSH2 0x1071 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11B4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1190 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11D5 PUSH2 0x11D0 DUP3 PUSH2 0xDA4 JUMP JUMPDEST PUSH2 0x11BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11E7 DUP3 DUP6 PUSH2 0x11C4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x11F7 DUP3 DUP5 PUSH2 0x11C4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 TLOAD 0x28 STOP RETURNDATASIZE SWAP13 LOG2 0xF7 0x24 0x22 0x23 CALLER 0xAA BLOBHASH SELFBALANCE DUP12 ADDMOD SUB SWAP5 0xE9 DUP8 COINBASE DUP4 0xAB PUSH0 DIV SUB PUSH17 0x12B21D32B864736F6C634300081C003300 ", + "sourceMap": "85:6342:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4675:139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4259:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2494:335;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3360:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4982:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3004:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1997:185;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1464:294;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3871:228;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;928:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5732:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5266:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4675:139;4759:7;4785;:13;4793:4;4785:13;;;;;;;;;;;:22;;;;;;;;;;;;4778:29;;4675:139;;;:::o;4259:243::-;4340:7;4359:12;4374:7;:13;4382:4;4374:13;;;;;;;;;;;:19;;;;;;;;;;;;4359:34;;4423:4;4407:21;;:4;:21;;;4403:71;;4459:3;4444:19;;;;;4403:71;4491:4;4484:11;;;4259:243;;;;:::o;2494:335::-;2643:7;2628:4;430:13;446:7;:13;454:4;446:13;;;;;;;;;;;:19;;;;;;;;;;;;430:35;;492:10;483:19;;:5;:19;;;:51;;;;506:9;:16;516:5;506:16;;;;;;;;;;;;;;;:28;523:10;506:28;;;;;;;;;;;;;;;;;;;;;;;;;483:51;475:60;;;;;;2662:15:::1;2707:4;2713:5;2690:29;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2680:40;;;;;;2662:58;;2730:25;2740:7;2749:5;2730:9;:25::i;:::-;2785:5;2779:4;2770:28;2792:5;2770:28;;;;;;:::i;:::-;;;;;;;;2815:7;2808:14;;;420:133:::0;2494:335;;;;;;:::o;3360:177::-;3459:4;430:13;446:7;:13;454:4;446:13;;;;;;;;;;;:19;;;;;;;;;;;;430:35;;492:10;483:19;;:5;:19;;;:51;;;;506:9;:16;516:5;506:16;;;;;;;;;;;;;;;:28;523:10;506:28;;;;;;;;;;;;;;;;;;;;;;;;;483:51;475:60;;;;;;3487:4:::1;3480:17;3493:3;3480:17;;;;;;:::i;:::-;;;;;;;;3527:3;3507:7;:13:::0;3515:4:::1;3507:13;;;;;;;;;;;:17;;;:23;;;;;;;;;;;;;;;;;;420:133:::0;3360:177;;;:::o;4982:114::-;5047:6;5072:7;:13;5080:4;5072:13;;;;;;;;;;;:17;;;;;;;;;;;;5065:24;;4982:114;;;:::o;3004:208::-;3114:4;430:13;446:7;:13;454:4;446:13;;;;;;;;;;;:19;;;;;;;;;;;;430:35;;492:10;483:19;;:5;:19;;;:51;;;;506:9;:16;516:5;506:16;;;;;;;;;;;;;;;:28;523:10;506:28;;;;;;;;;;;;;;;;;;;;;;;;;483:51;475:60;;;;;;3147:4:::1;3135:27;3153:8;3135:27;;;;;;:::i;:::-;;;;;;;;3197:8;3172:7;:13:::0;3180:4:::1;3172:13;;;;;;;;;;;:22;;;:33;;;;;;;;;;;;;;;;;;420:133:::0;3004:208;;;:::o;1997:185::-;2101:4;430:13;446:7;:13;454:4;446:13;;;;;;;;;;;:19;;;;;;;;;;;;430:35;;492:10;483:19;;:5;:19;;;:51;;;;506:9;:16;516:5;506:16;;;;;;;;;;;;;;;:28;523:10;506:28;;;;;;;;;;;;;;;;;;;;;;;;;483:51;475:60;;;;;;2117:22:::1;2127:4;2133:5;2117:9;:22::i;:::-;2163:4;2154:21;2169:5;2154:21;;;;;;:::i;:::-;;;;;;;;420:133:::0;1997:185;;;:::o;1464:294::-;1646:15;1664:35;1680:4;1686:5;1693;1664:15;:35::i;:::-;1646:53;;1709:42;1728:7;1737:8;1747:3;1709:18;:42::i;:::-;1636:122;1464:294;;;;;:::o;3871:228::-;4023:8;3989:9;:21;3999:10;3989:21;;;;;;;;;;;;;;;:31;4011:8;3989:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;4073:8;4046:46;;4061:10;4046:46;;;4083:8;4046:46;;;;;;:::i;:::-;;;;;;;;3871:228;;:::o;928:229::-;1080:21;1089:4;1095:5;1080:8;:21::i;:::-;1111:39;1130:4;1136:8;1146:3;1111:18;:39::i;:::-;928:229;;;;:::o;5732:177::-;5853:4;5876:9;:16;5886:5;5876:16;;;;;;;;;;;;;;;:26;5893:8;5876:26;;;;;;;;;;;;;;;;;;;;;;;;;5869:33;;5732:177;;;;:::o;5266:153::-;5354:4;5408:3;5377:35;;:7;:13;5385:4;5377:13;;;;;;;;;;;:19;;;;;;;;;;;;:35;;;;5370:42;;5266:153;;;:::o;5915:109::-;6012:5;5990:7;:13;5998:4;5990:13;;;;;;;;;;;:19;;;:27;;;;;;;;;;;;;;;;;;5915:109;;:::o;6030:395::-;6167:7;:13;6175:4;6167:13;;;;;;;;;;;:22;;;;;;;;;;;;6155:34;;:8;:34;;;6151:144;;6230:8;6205:7;:13;6213:4;6205:13;;;;;;;;;;;:22;;;:33;;;;;;;;;;;;;;;;;;6269:4;6257:27;6275:8;6257:27;;;;;;:::i;:::-;;;;;;;;6151:144;6316:7;:13;6324:4;6316:13;;;;;;;;;;;:17;;;;;;;;;;;;6309:24;;:3;:24;;;6305:114;;6369:3;6349:7;:13;6357:4;6349:13;;;;;;;;;;;:17;;;:23;;;;;;;;;;;;;;;;;;6398:4;6391:17;6404:3;6391:17;;;;;;:::i;:::-;;;;;;;;6305:114;6030:395;;;:::o;88:117:37:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:96::-;1194:7;1223:24;1241:5;1223:24;:::i;:::-;1212:35;;1157:96;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:619::-;1961:6;1969;1977;2026:2;2014:9;2005:7;2001:23;1997:32;1994:119;;;2032:79;;:::i;:::-;1994:119;2152:1;2177:53;2222:7;2213:6;2202:9;2198:22;2177:53;:::i;:::-;2167:63;;2123:117;2279:2;2305:53;2350:7;2341:6;2330:9;2326:22;2305:53;:::i;:::-;2295:63;;2250:118;2407:2;2433:53;2478:7;2469:6;2458:9;2454:22;2433:53;:::i;:::-;2423:63;;2378:118;1884:619;;;;;:::o;2509:118::-;2596:24;2614:5;2596:24;:::i;:::-;2591:3;2584:37;2509:118;;:::o;2633:222::-;2726:4;2764:2;2753:9;2749:18;2741:26;;2777:71;2845:1;2834:9;2830:17;2821:6;2777:71;:::i;:::-;2633:222;;;;:::o;2861:101::-;2897:7;2937:18;2930:5;2926:30;2915:41;;2861:101;;;:::o;2968:120::-;3040:23;3057:5;3040:23;:::i;:::-;3033:5;3030:34;3020:62;;3078:1;3075;3068:12;3020:62;2968:120;:::o;3094:137::-;3139:5;3177:6;3164:20;3155:29;;3193:32;3219:5;3193:32;:::i;:::-;3094:137;;;;:::o;3237:472::-;3304:6;3312;3361:2;3349:9;3340:7;3336:23;3332:32;3329:119;;;3367:79;;:::i;:::-;3329:119;3487:1;3512:53;3557:7;3548:6;3537:9;3533:22;3512:53;:::i;:::-;3502:63;;3458:117;3614:2;3640:52;3684:7;3675:6;3664:9;3660:22;3640:52;:::i;:::-;3630:62;;3585:117;3237:472;;;;;:::o;3715:115::-;3800:23;3817:5;3800:23;:::i;:::-;3795:3;3788:36;3715:115;;:::o;3836:218::-;3927:4;3965:2;3954:9;3950:18;3942:26;;3978:69;4044:1;4033:9;4029:17;4020:6;3978:69;:::i;:::-;3836:218;;;;:::o;4060:474::-;4128:6;4136;4185:2;4173:9;4164:7;4160:23;4156:32;4153:119;;;4191:79;;:::i;:::-;4153:119;4311:1;4336:53;4381:7;4372:6;4361:9;4357:22;4336:53;:::i;:::-;4326:63;;4282:117;4438:2;4464:53;4509:7;4500:6;4489:9;4485:22;4464:53;:::i;:::-;4454:63;;4409:118;4060:474;;;;;:::o;4540:909::-;4634:6;4642;4650;4658;4666;4715:3;4703:9;4694:7;4690:23;4686:33;4683:120;;;4722:79;;:::i;:::-;4683:120;4842:1;4867:53;4912:7;4903:6;4892:9;4888:22;4867:53;:::i;:::-;4857:63;;4813:117;4969:2;4995:53;5040:7;5031:6;5020:9;5016:22;4995:53;:::i;:::-;4985:63;;4940:118;5097:2;5123:53;5168:7;5159:6;5148:9;5144:22;5123:53;:::i;:::-;5113:63;;5068:118;5225:2;5251:53;5296:7;5287:6;5276:9;5272:22;5251:53;:::i;:::-;5241:63;;5196:118;5353:3;5380:52;5424:7;5415:6;5404:9;5400:22;5380:52;:::i;:::-;5370:62;;5324:118;4540:909;;;;;;;;:::o;5455:90::-;5489:7;5532:5;5525:13;5518:21;5507:32;;5455:90;;;:::o;5551:116::-;5621:21;5636:5;5621:21;:::i;:::-;5614:5;5611:32;5601:60;;5657:1;5654;5647:12;5601:60;5551:116;:::o;5673:133::-;5716:5;5754:6;5741:20;5732:29;;5770:30;5794:5;5770:30;:::i;:::-;5673:133;;;;:::o;5812:468::-;5877:6;5885;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;6187:2;6213:50;6255:7;6246:6;6235:9;6231:22;6213:50;:::i;:::-;6203:60;;6158:115;5812:468;;;;;:::o;6286:763::-;6371:6;6379;6387;6395;6444:3;6432:9;6423:7;6419:23;6415:33;6412:120;;;6451:79;;:::i;:::-;6412:120;6571:1;6596:53;6641:7;6632:6;6621:9;6617:22;6596:53;:::i;:::-;6586:63;;6542:117;6698:2;6724:53;6769:7;6760:6;6749:9;6745:22;6724:53;:::i;:::-;6714:63;;6669:118;6826:2;6852:53;6897:7;6888:6;6877:9;6873:22;6852:53;:::i;:::-;6842:63;;6797:118;6954:2;6980:52;7024:7;7015:6;7004:9;7000:22;6980:52;:::i;:::-;6970:62;;6925:117;6286:763;;;;;;;:::o;7055:474::-;7123:6;7131;7180:2;7168:9;7159:7;7155:23;7151:32;7148:119;;;7186:79;;:::i;:::-;7148:119;7306:1;7331:53;7376:7;7367:6;7356:9;7352:22;7331:53;:::i;:::-;7321:63;;7277:117;7433:2;7459:53;7504:7;7495:6;7484:9;7480:22;7459:53;:::i;:::-;7449:63;;7404:118;7055:474;;;;;:::o;7535:109::-;7616:21;7631:5;7616:21;:::i;:::-;7611:3;7604:34;7535:109;;:::o;7650:210::-;7737:4;7775:2;7764:9;7760:18;7752:26;;7788:65;7850:1;7839:9;7835:17;7826:6;7788:65;:::i;:::-;7650:210;;;;:::o;7866:79::-;7905:7;7934:5;7923:16;;7866:79;;;:::o;7951:157::-;8056:45;8076:24;8094:5;8076:24;:::i;:::-;8056:45;:::i;:::-;8051:3;8044:58;7951:157;;:::o;8114:397::-;8254:3;8269:75;8340:3;8331:6;8269:75;:::i;:::-;8369:2;8364:3;8360:12;8353:19;;8382:75;8453:3;8444:6;8382:75;:::i;:::-;8482:2;8477:3;8473:12;8466:19;;8502:3;8495:10;;8114:397;;;;;:::o" + }, + "methodIdentifiers": { + "isApprovedForAll(address,address)": "e985e9c5", + "owner(bytes32)": "02571be3", + "recordExists(bytes32)": "f79fe538", + "resolver(bytes32)": "0178b8bf", + "setApprovalForAll(address,bool)": "a22cb465", + "setOwner(bytes32,address)": "5b0fc9c3", + "setRecord(bytes32,address,address,uint64)": "cf408823", + "setResolver(bytes32,address)": "1896f70a", + "setSubnodeOwner(bytes32,bytes32,address)": "06ab5923", + "setSubnodeRecord(bytes32,bytes32,address,address,uint64)": "5ef2c7f0", + "setTTL(bytes32,uint64)": "14ab9038", + "ttl(bytes32)": "16a25cbd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"NewResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"NewTTL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"recordExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setSubnodeOwner\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setSubnodeRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Constructs a new ENS registry.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Query if an address is an authorized operator for another address.\",\"params\":{\"operator\":\"The address that acts on behalf of the owner.\",\"owner\":\"The address that owns the records.\"},\"returns\":{\"_0\":\"True if `operator` is an approved operator for `owner`, false otherwise.\"}},\"owner(bytes32)\":{\"details\":\"Returns the address that owns the specified node.\",\"params\":{\"node\":\"The specified node.\"},\"returns\":{\"_0\":\"address of the owner.\"}},\"recordExists(bytes32)\":{\"details\":\"Returns whether a record has been imported to the registry.\",\"params\":{\"node\":\"The specified node.\"},\"returns\":{\"_0\":\"Bool if record exists\"}},\"resolver(bytes32)\":{\"details\":\"Returns the address of the resolver for the specified node.\",\"params\":{\"node\":\"The specified node.\"},\"returns\":{\"_0\":\"address of the resolver.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage all of `msg.sender`'s ENS records. Emits the ApprovalForAll event.\",\"params\":{\"approved\":\"True if the operator is approved, false to revoke approval.\",\"operator\":\"Address to add to the set of authorized operators.\"}},\"setOwner(bytes32,address)\":{\"details\":\"Transfers ownership of a node to a new address. May only be called by the current owner of the node.\",\"params\":{\"node\":\"The node to transfer ownership of.\",\"owner\":\"The address of the new owner.\"}},\"setRecord(bytes32,address,address,uint64)\":{\"details\":\"Sets the record for a node.\",\"params\":{\"node\":\"The node to update.\",\"owner\":\"The address of the new owner.\",\"resolver\":\"The address of the resolver.\",\"ttl\":\"The TTL in seconds.\"}},\"setResolver(bytes32,address)\":{\"details\":\"Sets the resolver address for the specified node.\",\"params\":{\"node\":\"The node to update.\",\"resolver\":\"The address of the resolver.\"}},\"setSubnodeOwner(bytes32,bytes32,address)\":{\"details\":\"Transfers ownership of a subnode keccak256(node, label) to a new address. May only be called by the owner of the parent node.\",\"params\":{\"label\":\"The hash of the label specifying the subnode.\",\"node\":\"The parent node.\",\"owner\":\"The address of the new owner.\"}},\"setSubnodeRecord(bytes32,bytes32,address,address,uint64)\":{\"details\":\"Sets the record for a subnode.\",\"params\":{\"label\":\"The hash of the label specifying the subnode.\",\"node\":\"The parent node.\",\"owner\":\"The address of the new owner.\",\"resolver\":\"The address of the resolver.\",\"ttl\":\"The TTL in seconds.\"}},\"setTTL(bytes32,uint64)\":{\"details\":\"Sets the TTL for the specified node.\",\"params\":{\"node\":\"The node to update.\",\"ttl\":\"The TTL in seconds.\"}},\"ttl(bytes32)\":{\"details\":\"Returns the TTL of a node, and any records associated with it.\",\"params\":{\"node\":\"The specified node.\"},\"returns\":{\"_0\":\"ttl of the node.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The ENS registry contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol\":\"ENSRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@ensdomains/ens-contracts/contracts/registry/ENS.sol\":{\"keccak256\":\"0x7cb1158c7d268b63de1468e28e2711b28d686e2628ddb22da2149cd93ddeafda\",\"urls\":[\"bzz-raw://a7018309acca24b10ea1235b1c27828f29f2ddfabb653a794639baf620dc2314\",\"dweb:/ipfs/QmakFQT5NFvGs3g8xxwtgtWdddq28Wtm6MjNSpJNhV1YpR\"]},\"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol\":{\"keccak256\":\"0xa7a7a64fb980e521c991415e416fd4106a42f892479805e1daa51ecb0e2e5198\",\"urls\":[\"bzz-raw://9e38bcea7309c8d530266511936ba6aece79c8e892e6beb9cbe1b8e35cbd4bcc\",\"dweb:/ipfs/QmVRmcagSnoryJtcuiYnQgAcQcfm2MPVqsMadNYM89boEJ\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 154, + "contract": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:ENSRegistry", + "label": "records", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_bytes32,t_struct(Record)149_storage)" + }, + { + "astId": 160, + "contract": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:ENSRegistry", + "label": "operators", + "offset": 0, + "slot": "1", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32", + "value": "t_mapping(t_address,t_bool)" + }, + "t_mapping(t_bytes32,t_struct(Record)149_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct ENSRegistry.Record)", + "numberOfBytes": "32", + "value": "t_struct(Record)149_storage" + }, + "t_struct(Record)149_storage": { + "encoding": "inplace", + "label": "struct ENSRegistry.Record", + "members": [ + { + "astId": 144, + "contract": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:ENSRegistry", + "label": "owner", + "offset": 0, + "slot": "0", + "type": "t_address" + }, + { + "astId": 146, + "contract": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:ENSRegistry", + "label": "resolver", + "offset": 0, + "slot": "1", + "type": "t_address" + }, + { + "astId": 148, + "contract": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:ENSRegistry", + "label": "ttl", + "offset": 20, + "slot": "1", + "type": "t_uint64" + } + ], + "numberOfBytes": "64" + }, + "t_uint64": { + "encoding": "inplace", + "label": "uint64", + "numberOfBytes": "8" + } + } + } + } + }, + "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol": { + "Ownable2StepUpgradeable": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferStarted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "owner()": "8da5cb5b", + "pendingOwner()": "e30c3978", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is specified at deployment time in the constructor for `Ownable`. This can later be changed with {transferOwnership} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":\"Ownable2StepUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xbca4a4f66d98028293dba695851d1b20d3e0ba2fff7453fb241f192fa3fc6b6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://013b3cfd9d1e34dad409c3b9a340860e8651e61cda509de33599fb5102f62fe7\",\"dweb:/ipfs/QmTVjDKofM9Nst8w8LAA3HHgi1eCnGYBpFb7Nbat71e2xz\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": { + "OwnableUpgradeable": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "Initializable": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "ContextUpgradeable": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/access/AccessControl.sol": { + "AccessControl": { + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "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": [ + { + "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": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"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\":[{\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"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\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"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 `callerConfirmation`. 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\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 1219, + "contract": "@openzeppelin/contracts/access/AccessControl.sol:AccessControl", + "label": "_roles", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_bytes32,t_struct(RoleData)1214_storage)" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_bytes32,t_struct(RoleData)1214_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct AccessControl.RoleData)", + "numberOfBytes": "32", + "value": "t_struct(RoleData)1214_storage" + }, + "t_struct(RoleData)1214_storage": { + "encoding": "inplace", + "label": "struct AccessControl.RoleData", + "members": [ + { + "astId": 1211, + "contract": "@openzeppelin/contracts/access/AccessControl.sol:AccessControl", + "label": "hasRole", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_address,t_bool)" + }, + { + "astId": 1213, + "contract": "@openzeppelin/contracts/access/AccessControl.sol:AccessControl", + "label": "adminRole", + "offset": 0, + "slot": "1", + "type": "t_bytes32" + } + ], + "numberOfBytes": "64" + } + } + } + } + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "IAccessControl": { + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "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": [ + { + "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": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"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\":[{\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"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\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_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.\"},\"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 granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/access/Ownable.sol": { + "Ownable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 1580, + "contract": "@openzeppelin/contracts/access/Ownable.sol:Ownable", + "label": "_owner", + "offset": 0, + "slot": "0", + "type": "t_address" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + } + } + } + } + }, + "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol": { + "AccessControlDefaultAdminRules": { + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "name": "AccessControlEnforcedDefaultAdminDelay", + "type": "error" + }, + { + "inputs": [], + "name": "AccessControlEnforcedDefaultAdminRules", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "defaultAdmin", + "type": "address" + } + ], + "name": "AccessControlInvalidDefaultAdmin", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "bits", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeCastOverflowedUintDowncast", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminDelayChangeCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "effectSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminDelayChangeScheduled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminTransferCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "acceptSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminTransferScheduled", + "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": "acceptDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "beginDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cancelDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + } + ], + "name": "changeDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelayIncreaseWait", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "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": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "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": [], + "name": "rollbackDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "acceptDefaultAdminTransfer()": "cefc1429", + "beginDefaultAdminTransfer(address)": "634e93da", + "cancelDefaultAdminTransfer()": "d602b9fd", + "changeDefaultAdminDelay(uint48)": "649a5ec7", + "defaultAdmin()": "84ef8ffc", + "defaultAdminDelay()": "cc8463c8", + "defaultAdminDelayIncreaseWait()": "022d63fb", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "owner()": "8da5cb5b", + "pendingDefaultAdmin()": "cf6eefb7", + "pendingDefaultAdminDelay()": "a1eda53c", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "rollbackDefaultAdminDelay()": "0aa6220b", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"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\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"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\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"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\":[],\"name\":\"rollbackDefaultAdminDelay\",\"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\":{\"details\":\"Extension of {AccessControl} that allows specifying special rules to manage the `DEFAULT_ADMIN_ROLE` holder, which is a sensitive role with special permissions over other roles that may potentially have privileged rights in the system. If a specific role doesn't have an admin role assigned, the holder of the `DEFAULT_ADMIN_ROLE` will have the ability to grant it and revoke it. This contract implements the following risk mitigations on top of {AccessControl}: * Only one account holds the `DEFAULT_ADMIN_ROLE` since deployment until it's potentially renounced. * Enforces a 2-step process to transfer the `DEFAULT_ADMIN_ROLE` to another account. * Enforces a configurable delay between the two steps, with the ability to cancel before the transfer is accepted. * The delay can be changed by scheduling, see {changeDefaultAdminDelay}. * It is not possible to use another role to manage the `DEFAULT_ADMIN_ROLE`. Example usage: ```solidity contract MyToken is AccessControlDefaultAdminRules { constructor() AccessControlDefaultAdminRules( 3 days, msg.sender // Explicit initial `DEFAULT_ADMIN_ROLE` holder ) {} } ```\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"constructor\":{\"details\":\"Sets the initial values for {defaultAdminDelay} and {defaultAdmin} address.\"},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"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\":\"See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"See {IERC5313-owner}.\"},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"renounceRole(bytes32,address)\":{\"details\":\"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role.\"},\"revokeRole(bytes32,address)\":{\"details\":\"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":\"AccessControlDefaultAdminRules\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x969a4661694319a003d037ccbf7c8310f8994d746b763c933d3f76d906e67203\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3992218d90b149834c12bb2bbbb09fcf6cd44605bb37655fc5c42e2f0eaacdea\",\"dweb:/ipfs/QmaqD3yHE46mKZpqFZyMGZHEca5zcp2d53mYVhJz7Jzys2\"]},\"@openzeppelin/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0x22412c268e74cc3cbf550aecc2f7456f6ac40783058e219cfe09f26f4d396621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b841021f25480424d2359de4869e60e77f790f52e8e85f07aa389543024b559\",\"dweb:/ipfs/QmV7U5ehV5xe3QrbE8ErxfWSSzK1T1dGeizXvYPjWpNDGq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 1219, + "contract": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules", + "label": "_roles", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_bytes32,t_struct(RoleData)1214_storage)" + }, + { + "astId": 1741, + "contract": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules", + "label": "_pendingDefaultAdmin", + "offset": 0, + "slot": "1", + "type": "t_address" + }, + { + "astId": 1743, + "contract": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules", + "label": "_pendingDefaultAdminSchedule", + "offset": 20, + "slot": "1", + "type": "t_uint48" + }, + { + "astId": 1745, + "contract": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules", + "label": "_currentDelay", + "offset": 26, + "slot": "1", + "type": "t_uint48" + }, + { + "astId": 1747, + "contract": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules", + "label": "_currentDefaultAdmin", + "offset": 0, + "slot": "2", + "type": "t_address" + }, + { + "astId": 1749, + "contract": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules", + "label": "_pendingDelay", + "offset": 20, + "slot": "2", + "type": "t_uint48" + }, + { + "astId": 1751, + "contract": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules", + "label": "_pendingDelaySchedule", + "offset": 26, + "slot": "2", + "type": "t_uint48" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_bytes32,t_struct(RoleData)1214_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct AccessControl.RoleData)", + "numberOfBytes": "32", + "value": "t_struct(RoleData)1214_storage" + }, + "t_struct(RoleData)1214_storage": { + "encoding": "inplace", + "label": "struct AccessControl.RoleData", + "members": [ + { + "astId": 1211, + "contract": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules", + "label": "hasRole", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_address,t_bool)" + }, + { + "astId": 1213, + "contract": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules", + "label": "adminRole", + "offset": 0, + "slot": "1", + "type": "t_bytes32" + } + ], + "numberOfBytes": "64" + }, + "t_uint48": { + "encoding": "inplace", + "label": "uint48", + "numberOfBytes": "6" + } + } + } + } + }, + "@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol": { + "IAccessControlDefaultAdminRules": { + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "name": "AccessControlEnforcedDefaultAdminDelay", + "type": "error" + }, + { + "inputs": [], + "name": "AccessControlEnforcedDefaultAdminRules", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "defaultAdmin", + "type": "address" + } + ], + "name": "AccessControlInvalidDefaultAdmin", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminDelayChangeCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "effectSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminDelayChangeScheduled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminTransferCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "acceptSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminTransferScheduled", + "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": "acceptDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "beginDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cancelDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + } + ], + "name": "changeDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelayIncreaseWait", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "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": [], + "name": "pendingDefaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "internalType": "uint48", + "name": "acceptSchedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "internalType": "uint48", + "name": "effectSchedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "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": [], + "name": "rollbackDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptDefaultAdminTransfer()": "cefc1429", + "beginDefaultAdminTransfer(address)": "634e93da", + "cancelDefaultAdminTransfer()": "d602b9fd", + "changeDefaultAdminDelay(uint48)": "649a5ec7", + "defaultAdmin()": "84ef8ffc", + "defaultAdminDelay()": "cc8463c8", + "defaultAdminDelayIncreaseWait()": "022d63fb", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "pendingDefaultAdmin()": "cf6eefb7", + "pendingDefaultAdminDelay()": "a1eda53c", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "rollbackDefaultAdminDelay()": "0aa6220b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"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\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"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\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"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\":[],\"name\":\"rollbackDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControlDefaultAdminRules declared to support ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_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.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"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 granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"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.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":\"IAccessControlDefaultAdminRules\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x969a4661694319a003d037ccbf7c8310f8994d746b763c933d3f76d906e67203\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3992218d90b149834c12bb2bbbb09fcf6cd44605bb37655fc5c42e2f0eaacdea\",\"dweb:/ipfs/QmaqD3yHE46mKZpqFZyMGZHEca5zcp2d53mYVhJz7Jzys2\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/interfaces/IERC1967.sol": { + "IERC1967": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":\"IERC1967\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/interfaces/IERC5313.sol": { + "IERC5313": { + "abi": [ + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the Light Contract Ownership Standard. A standardized minimal interface required to identify an account that controls a contract\",\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Gets the address of the owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC5313.sol\":\"IERC5313\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0x22412c268e74cc3cbf550aecc2f7456f6ac40783058e219cfe09f26f4d396621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b841021f25480424d2359de4869e60e77f790f52e8e85f07aa389543024b559\",\"dweb:/ipfs/QmV7U5ehV5xe3QrbE8ErxfWSSzK1T1dGeizXvYPjWpNDGq\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol": { + "ERC1967Proxy": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "ERC1967InvalidImplementation", + "type": "error" + }, + { + "inputs": [], + "name": "ERC1967NonPayable", + "type": "error" + }, + { + "inputs": [], + "name": "FailedInnerCall", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_2591": { + "entryPoint": null, + "id": 2591, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkNonPayable_2906": { + "entryPoint": 542, + "id": 2906, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_revert_3388": { + "entryPoint": 762, + "id": 3388, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setImplementation_2692": { + "entryPoint": 193, + "id": 2692, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@functionDelegateCall_3308": { + "entryPoint": 404, + "id": 3308, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getAddressSlot_3568": { + "entryPoint": 603, + "id": 3568, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@upgradeToAndCall_2726": { + "entryPoint": 60, + "id": 2726, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@verifyCallResultFromTarget_3348": { + "entryPoint": 613, + "id": 3348, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_bytes_memory_ptr_fromMemory": { + "entryPoint": 1186, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 924, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr_fromMemory": { + "entryPoint": 1252, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory": { + "entryPoint": 1298, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1390, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 1454, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 1503, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1405, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 1068, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 831, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 1095, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 1432, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 1443, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 883, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 851, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 1144, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "finalize_allocation": { + "entryPoint": 1019, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 972, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 945, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 950, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 846, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 841, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 955, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 901, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:5143:37", + "nodeType": "YulBlock", + "src": "0:5143:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "379:81:37", + "nodeType": "YulBlock", + "src": "379:81:37", + "statements": [ + { + "nativeSrc": "389:65:37", + "nodeType": "YulAssignment", + "src": "389:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "404:5:37", + "nodeType": "YulIdentifier", + "src": "404:5:37" + }, + { + "kind": "number", + "nativeSrc": "411:42:37", + "nodeType": "YulLiteral", + "src": "411:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "400:3:37", + "nodeType": "YulIdentifier", + "src": "400:3:37" + }, + "nativeSrc": "400:54:37", + "nodeType": "YulFunctionCall", + "src": "400:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:37", + "nodeType": "YulIdentifier", + "src": "389:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:37", + "nodeType": "YulTypedName", + "src": "361:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:37", + "nodeType": "YulTypedName", + "src": "371:7:37", + "type": "" + } + ], + "src": "334:126:37" + }, + { + "body": { + "nativeSrc": "511:51:37", + "nodeType": "YulBlock", + "src": "511:51:37", + "statements": [ + { + "nativeSrc": "521:35:37", + "nodeType": "YulAssignment", + "src": "521:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "550:5:37", + "nodeType": "YulIdentifier", + "src": "550:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:37", + "nodeType": "YulIdentifier", + "src": "532:17:37" + }, + "nativeSrc": "532:24:37", + "nodeType": "YulFunctionCall", + "src": "532:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:37", + "nodeType": "YulIdentifier", + "src": "521:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "466:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "493:5:37", + "nodeType": "YulTypedName", + "src": "493:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "503:7:37", + "nodeType": "YulTypedName", + "src": "503:7:37", + "type": "" + } + ], + "src": "466:96:37" + }, + { + "body": { + "nativeSrc": "611:79:37", + "nodeType": "YulBlock", + "src": "611:79:37", + "statements": [ + { + "body": { + "nativeSrc": "668:16:37", + "nodeType": "YulBlock", + "src": "668:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:37", + "nodeType": "YulLiteral", + "src": "677:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:37", + "nodeType": "YulLiteral", + "src": "680:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "670:6:37", + "nodeType": "YulIdentifier", + "src": "670:6:37" + }, + "nativeSrc": "670:12:37", + "nodeType": "YulFunctionCall", + "src": "670:12:37" + }, + "nativeSrc": "670:12:37", + "nodeType": "YulExpressionStatement", + "src": "670:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "634:5:37", + "nodeType": "YulIdentifier", + "src": "634:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:37", + "nodeType": "YulIdentifier", + "src": "659:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:37", + "nodeType": "YulIdentifier", + "src": "641:17:37" + }, + "nativeSrc": "641:24:37", + "nodeType": "YulFunctionCall", + "src": "641:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "631:2:37", + "nodeType": "YulIdentifier", + "src": "631:2:37" + }, + "nativeSrc": "631:35:37", + "nodeType": "YulFunctionCall", + "src": "631:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:37", + "nodeType": "YulIdentifier", + "src": "624:6:37" + }, + "nativeSrc": "624:43:37", + "nodeType": "YulFunctionCall", + "src": "624:43:37" + }, + "nativeSrc": "621:63:37", + "nodeType": "YulIf", + "src": "621:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:37", + "nodeType": "YulTypedName", + "src": "604:5:37", + "type": "" + } + ], + "src": "568:122:37" + }, + { + "body": { + "nativeSrc": "759:80:37", + "nodeType": "YulBlock", + "src": "759:80:37", + "statements": [ + { + "nativeSrc": "769:22:37", + "nodeType": "YulAssignment", + "src": "769:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "784:6:37", + "nodeType": "YulIdentifier", + "src": "784:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "778:5:37", + "nodeType": "YulIdentifier", + "src": "778:5:37" + }, + "nativeSrc": "778:13:37", + "nodeType": "YulFunctionCall", + "src": "778:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "769:5:37", + "nodeType": "YulIdentifier", + "src": "769:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "827:5:37", + "nodeType": "YulIdentifier", + "src": "827:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "800:26:37", + "nodeType": "YulIdentifier", + "src": "800:26:37" + }, + "nativeSrc": "800:33:37", + "nodeType": "YulFunctionCall", + "src": "800:33:37" + }, + "nativeSrc": "800:33:37", + "nodeType": "YulExpressionStatement", + "src": "800:33:37" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "696:143:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "737:6:37", + "nodeType": "YulTypedName", + "src": "737:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "745:3:37", + "nodeType": "YulTypedName", + "src": "745:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "753:5:37", + "nodeType": "YulTypedName", + "src": "753:5:37", + "type": "" + } + ], + "src": "696:143:37" + }, + { + "body": { + "nativeSrc": "934:28:37", + "nodeType": "YulBlock", + "src": "934:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "951:1:37", + "nodeType": "YulLiteral", + "src": "951:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "954:1:37", + "nodeType": "YulLiteral", + "src": "954:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "944:6:37", + "nodeType": "YulIdentifier", + "src": "944:6:37" + }, + "nativeSrc": "944:12:37", + "nodeType": "YulFunctionCall", + "src": "944:12:37" + }, + "nativeSrc": "944:12:37", + "nodeType": "YulExpressionStatement", + "src": "944:12:37" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "845:117:37", + "nodeType": "YulFunctionDefinition", + "src": "845:117:37" + }, + { + "body": { + "nativeSrc": "1057:28:37", + "nodeType": "YulBlock", + "src": "1057:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1074:1:37", + "nodeType": "YulLiteral", + "src": "1074:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1077:1:37", + "nodeType": "YulLiteral", + "src": "1077:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1067:6:37", + "nodeType": "YulIdentifier", + "src": "1067:6:37" + }, + "nativeSrc": "1067:12:37", + "nodeType": "YulFunctionCall", + "src": "1067:12:37" + }, + "nativeSrc": "1067:12:37", + "nodeType": "YulExpressionStatement", + "src": "1067:12:37" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "968:117:37", + "nodeType": "YulFunctionDefinition", + "src": "968:117:37" + }, + { + "body": { + "nativeSrc": "1139:54:37", + "nodeType": "YulBlock", + "src": "1139:54:37", + "statements": [ + { + "nativeSrc": "1149:38:37", + "nodeType": "YulAssignment", + "src": "1149:38:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1167:5:37", + "nodeType": "YulIdentifier", + "src": "1167:5:37" + }, + { + "kind": "number", + "nativeSrc": "1174:2:37", + "nodeType": "YulLiteral", + "src": "1174:2:37", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1163:3:37", + "nodeType": "YulIdentifier", + "src": "1163:3:37" + }, + "nativeSrc": "1163:14:37", + "nodeType": "YulFunctionCall", + "src": "1163:14:37" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1183:2:37", + "nodeType": "YulLiteral", + "src": "1183:2:37", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1179:3:37", + "nodeType": "YulIdentifier", + "src": "1179:3:37" + }, + "nativeSrc": "1179:7:37", + "nodeType": "YulFunctionCall", + "src": "1179:7:37" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1159:3:37", + "nodeType": "YulIdentifier", + "src": "1159:3:37" + }, + "nativeSrc": "1159:28:37", + "nodeType": "YulFunctionCall", + "src": "1159:28:37" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "1149:6:37", + "nodeType": "YulIdentifier", + "src": "1149:6:37" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "1091:102:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1122:5:37", + "nodeType": "YulTypedName", + "src": "1122:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "1132:6:37", + "nodeType": "YulTypedName", + "src": "1132:6:37", + "type": "" + } + ], + "src": "1091:102:37" + }, + { + "body": { + "nativeSrc": "1227:152:37", + "nodeType": "YulBlock", + "src": "1227:152:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1244:1:37", + "nodeType": "YulLiteral", + "src": "1244:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1247:77:37", + "nodeType": "YulLiteral", + "src": "1247:77:37", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1237:6:37", + "nodeType": "YulIdentifier", + "src": "1237:6:37" + }, + "nativeSrc": "1237:88:37", + "nodeType": "YulFunctionCall", + "src": "1237:88:37" + }, + "nativeSrc": "1237:88:37", + "nodeType": "YulExpressionStatement", + "src": "1237:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1341:1:37", + "nodeType": "YulLiteral", + "src": "1341:1:37", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "1344:4:37", + "nodeType": "YulLiteral", + "src": "1344:4:37", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1334:6:37", + "nodeType": "YulIdentifier", + "src": "1334:6:37" + }, + "nativeSrc": "1334:15:37", + "nodeType": "YulFunctionCall", + "src": "1334:15:37" + }, + "nativeSrc": "1334:15:37", + "nodeType": "YulExpressionStatement", + "src": "1334:15:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1365:1:37", + "nodeType": "YulLiteral", + "src": "1365:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1368:4:37", + "nodeType": "YulLiteral", + "src": "1368:4:37", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1358:6:37", + "nodeType": "YulIdentifier", + "src": "1358:6:37" + }, + "nativeSrc": "1358:15:37", + "nodeType": "YulFunctionCall", + "src": "1358:15:37" + }, + "nativeSrc": "1358:15:37", + "nodeType": "YulExpressionStatement", + "src": "1358:15:37" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "1199:180:37", + "nodeType": "YulFunctionDefinition", + "src": "1199:180:37" + }, + { + "body": { + "nativeSrc": "1428:238:37", + "nodeType": "YulBlock", + "src": "1428:238:37", + "statements": [ + { + "nativeSrc": "1438:58:37", + "nodeType": "YulVariableDeclaration", + "src": "1438:58:37", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1460:6:37", + "nodeType": "YulIdentifier", + "src": "1460:6:37" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "1490:4:37", + "nodeType": "YulIdentifier", + "src": "1490:4:37" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "1468:21:37", + "nodeType": "YulIdentifier", + "src": "1468:21:37" + }, + "nativeSrc": "1468:27:37", + "nodeType": "YulFunctionCall", + "src": "1468:27:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1456:3:37", + "nodeType": "YulIdentifier", + "src": "1456:3:37" + }, + "nativeSrc": "1456:40:37", + "nodeType": "YulFunctionCall", + "src": "1456:40:37" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "1442:10:37", + "nodeType": "YulTypedName", + "src": "1442:10:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1607:22:37", + "nodeType": "YulBlock", + "src": "1607:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1609:16:37", + "nodeType": "YulIdentifier", + "src": "1609:16:37" + }, + "nativeSrc": "1609:18:37", + "nodeType": "YulFunctionCall", + "src": "1609:18:37" + }, + "nativeSrc": "1609:18:37", + "nodeType": "YulExpressionStatement", + "src": "1609:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1550:10:37", + "nodeType": "YulIdentifier", + "src": "1550:10:37" + }, + { + "kind": "number", + "nativeSrc": "1562:18:37", + "nodeType": "YulLiteral", + "src": "1562:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1547:2:37", + "nodeType": "YulIdentifier", + "src": "1547:2:37" + }, + "nativeSrc": "1547:34:37", + "nodeType": "YulFunctionCall", + "src": "1547:34:37" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1586:10:37", + "nodeType": "YulIdentifier", + "src": "1586:10:37" + }, + { + "name": "memPtr", + "nativeSrc": "1598:6:37", + "nodeType": "YulIdentifier", + "src": "1598:6:37" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1583:2:37", + "nodeType": "YulIdentifier", + "src": "1583:2:37" + }, + "nativeSrc": "1583:22:37", + "nodeType": "YulFunctionCall", + "src": "1583:22:37" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1544:2:37", + "nodeType": "YulIdentifier", + "src": "1544:2:37" + }, + "nativeSrc": "1544:62:37", + "nodeType": "YulFunctionCall", + "src": "1544:62:37" + }, + "nativeSrc": "1541:88:37", + "nodeType": "YulIf", + "src": "1541:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1645:2:37", + "nodeType": "YulLiteral", + "src": "1645:2:37", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1649:10:37", + "nodeType": "YulIdentifier", + "src": "1649:10:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1638:6:37", + "nodeType": "YulIdentifier", + "src": "1638:6:37" + }, + "nativeSrc": "1638:22:37", + "nodeType": "YulFunctionCall", + "src": "1638:22:37" + }, + "nativeSrc": "1638:22:37", + "nodeType": "YulExpressionStatement", + "src": "1638:22:37" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "1385:281:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "1414:6:37", + "nodeType": "YulTypedName", + "src": "1414:6:37", + "type": "" + }, + { + "name": "size", + "nativeSrc": "1422:4:37", + "nodeType": "YulTypedName", + "src": "1422:4:37", + "type": "" + } + ], + "src": "1385:281:37" + }, + { + "body": { + "nativeSrc": "1713:88:37", + "nodeType": "YulBlock", + "src": "1713:88:37", + "statements": [ + { + "nativeSrc": "1723:30:37", + "nodeType": "YulAssignment", + "src": "1723:30:37", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1733:18:37", + "nodeType": "YulIdentifier", + "src": "1733:18:37" + }, + "nativeSrc": "1733:20:37", + "nodeType": "YulFunctionCall", + "src": "1733:20:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1723:6:37", + "nodeType": "YulIdentifier", + "src": "1723:6:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1782:6:37", + "nodeType": "YulIdentifier", + "src": "1782:6:37" + }, + { + "name": "size", + "nativeSrc": "1790:4:37", + "nodeType": "YulIdentifier", + "src": "1790:4:37" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "1762:19:37", + "nodeType": "YulIdentifier", + "src": "1762:19:37" + }, + "nativeSrc": "1762:33:37", + "nodeType": "YulFunctionCall", + "src": "1762:33:37" + }, + "nativeSrc": "1762:33:37", + "nodeType": "YulExpressionStatement", + "src": "1762:33:37" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "1672:129:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "1697:4:37", + "nodeType": "YulTypedName", + "src": "1697:4:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1706:6:37", + "nodeType": "YulTypedName", + "src": "1706:6:37", + "type": "" + } + ], + "src": "1672:129:37" + }, + { + "body": { + "nativeSrc": "1873:241:37", + "nodeType": "YulBlock", + "src": "1873:241:37", + "statements": [ + { + "body": { + "nativeSrc": "1978:22:37", + "nodeType": "YulBlock", + "src": "1978:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1980:16:37", + "nodeType": "YulIdentifier", + "src": "1980:16:37" + }, + "nativeSrc": "1980:18:37", + "nodeType": "YulFunctionCall", + "src": "1980:18:37" + }, + "nativeSrc": "1980:18:37", + "nodeType": "YulExpressionStatement", + "src": "1980:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1950:6:37", + "nodeType": "YulIdentifier", + "src": "1950:6:37" + }, + { + "kind": "number", + "nativeSrc": "1958:18:37", + "nodeType": "YulLiteral", + "src": "1958:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1947:2:37", + "nodeType": "YulIdentifier", + "src": "1947:2:37" + }, + "nativeSrc": "1947:30:37", + "nodeType": "YulFunctionCall", + "src": "1947:30:37" + }, + "nativeSrc": "1944:56:37", + "nodeType": "YulIf", + "src": "1944:56:37" + }, + { + "nativeSrc": "2010:37:37", + "nodeType": "YulAssignment", + "src": "2010:37:37", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "2040:6:37", + "nodeType": "YulIdentifier", + "src": "2040:6:37" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2018:21:37", + "nodeType": "YulIdentifier", + "src": "2018:21:37" + }, + "nativeSrc": "2018:29:37", + "nodeType": "YulFunctionCall", + "src": "2018:29:37" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "2010:4:37", + "nodeType": "YulIdentifier", + "src": "2010:4:37" + } + ] + }, + { + "nativeSrc": "2084:23:37", + "nodeType": "YulAssignment", + "src": "2084:23:37", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "2096:4:37", + "nodeType": "YulIdentifier", + "src": "2096:4:37" + }, + { + "kind": "number", + "nativeSrc": "2102:4:37", + "nodeType": "YulLiteral", + "src": "2102:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2092:3:37", + "nodeType": "YulIdentifier", + "src": "2092:3:37" + }, + "nativeSrc": "2092:15:37", + "nodeType": "YulFunctionCall", + "src": "2092:15:37" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "2084:4:37", + "nodeType": "YulIdentifier", + "src": "2084:4:37" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "1807:307:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "1857:6:37", + "nodeType": "YulTypedName", + "src": "1857:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "1868:4:37", + "nodeType": "YulTypedName", + "src": "1868:4:37", + "type": "" + } + ], + "src": "1807:307:37" + }, + { + "body": { + "nativeSrc": "2182:186:37", + "nodeType": "YulBlock", + "src": "2182:186:37", + "statements": [ + { + "nativeSrc": "2193:10:37", + "nodeType": "YulVariableDeclaration", + "src": "2193:10:37", + "value": { + "kind": "number", + "nativeSrc": "2202:1:37", + "nodeType": "YulLiteral", + "src": "2202:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "2197:1:37", + "nodeType": "YulTypedName", + "src": "2197:1:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2262:63:37", + "nodeType": "YulBlock", + "src": "2262:63:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2287:3:37", + "nodeType": "YulIdentifier", + "src": "2287:3:37" + }, + { + "name": "i", + "nativeSrc": "2292:1:37", + "nodeType": "YulIdentifier", + "src": "2292:1:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2283:3:37", + "nodeType": "YulIdentifier", + "src": "2283:3:37" + }, + "nativeSrc": "2283:11:37", + "nodeType": "YulFunctionCall", + "src": "2283:11:37" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "2306:3:37", + "nodeType": "YulIdentifier", + "src": "2306:3:37" + }, + { + "name": "i", + "nativeSrc": "2311:1:37", + "nodeType": "YulIdentifier", + "src": "2311:1:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2302:3:37", + "nodeType": "YulIdentifier", + "src": "2302:3:37" + }, + "nativeSrc": "2302:11:37", + "nodeType": "YulFunctionCall", + "src": "2302:11:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2296:5:37", + "nodeType": "YulIdentifier", + "src": "2296:5:37" + }, + "nativeSrc": "2296:18:37", + "nodeType": "YulFunctionCall", + "src": "2296:18:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2276:6:37", + "nodeType": "YulIdentifier", + "src": "2276:6:37" + }, + "nativeSrc": "2276:39:37", + "nodeType": "YulFunctionCall", + "src": "2276:39:37" + }, + "nativeSrc": "2276:39:37", + "nodeType": "YulExpressionStatement", + "src": "2276:39:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "2223:1:37", + "nodeType": "YulIdentifier", + "src": "2223:1:37" + }, + { + "name": "length", + "nativeSrc": "2226:6:37", + "nodeType": "YulIdentifier", + "src": "2226:6:37" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2220:2:37", + "nodeType": "YulIdentifier", + "src": "2220:2:37" + }, + "nativeSrc": "2220:13:37", + "nodeType": "YulFunctionCall", + "src": "2220:13:37" + }, + "nativeSrc": "2212:113:37", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "2234:19:37", + "nodeType": "YulBlock", + "src": "2234:19:37", + "statements": [ + { + "nativeSrc": "2236:15:37", + "nodeType": "YulAssignment", + "src": "2236:15:37", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "2245:1:37", + "nodeType": "YulIdentifier", + "src": "2245:1:37" + }, + { + "kind": "number", + "nativeSrc": "2248:2:37", + "nodeType": "YulLiteral", + "src": "2248:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2241:3:37", + "nodeType": "YulIdentifier", + "src": "2241:3:37" + }, + "nativeSrc": "2241:10:37", + "nodeType": "YulFunctionCall", + "src": "2241:10:37" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "2236:1:37", + "nodeType": "YulIdentifier", + "src": "2236:1:37" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "2216:3:37", + "nodeType": "YulBlock", + "src": "2216:3:37", + "statements": [] + }, + "src": "2212:113:37" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2345:3:37", + "nodeType": "YulIdentifier", + "src": "2345:3:37" + }, + { + "name": "length", + "nativeSrc": "2350:6:37", + "nodeType": "YulIdentifier", + "src": "2350:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2341:3:37", + "nodeType": "YulIdentifier", + "src": "2341:3:37" + }, + "nativeSrc": "2341:16:37", + "nodeType": "YulFunctionCall", + "src": "2341:16:37" + }, + { + "kind": "number", + "nativeSrc": "2359:1:37", + "nodeType": "YulLiteral", + "src": "2359:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2334:6:37", + "nodeType": "YulIdentifier", + "src": "2334:6:37" + }, + "nativeSrc": "2334:27:37", + "nodeType": "YulFunctionCall", + "src": "2334:27:37" + }, + "nativeSrc": "2334:27:37", + "nodeType": "YulExpressionStatement", + "src": "2334:27:37" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2120:248:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "2164:3:37", + "nodeType": "YulTypedName", + "src": "2164:3:37", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "2169:3:37", + "nodeType": "YulTypedName", + "src": "2169:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "2174:6:37", + "nodeType": "YulTypedName", + "src": "2174:6:37", + "type": "" + } + ], + "src": "2120:248:37" + }, + { + "body": { + "nativeSrc": "2468:338:37", + "nodeType": "YulBlock", + "src": "2468:338:37", + "statements": [ + { + "nativeSrc": "2478:74:37", + "nodeType": "YulAssignment", + "src": "2478:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2544:6:37", + "nodeType": "YulIdentifier", + "src": "2544:6:37" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "2503:40:37", + "nodeType": "YulIdentifier", + "src": "2503:40:37" + }, + "nativeSrc": "2503:48:37", + "nodeType": "YulFunctionCall", + "src": "2503:48:37" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "2487:15:37", + "nodeType": "YulIdentifier", + "src": "2487:15:37" + }, + "nativeSrc": "2487:65:37", + "nodeType": "YulFunctionCall", + "src": "2487:65:37" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "2478:5:37", + "nodeType": "YulIdentifier", + "src": "2478:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2568:5:37", + "nodeType": "YulIdentifier", + "src": "2568:5:37" + }, + { + "name": "length", + "nativeSrc": "2575:6:37", + "nodeType": "YulIdentifier", + "src": "2575:6:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2561:6:37", + "nodeType": "YulIdentifier", + "src": "2561:6:37" + }, + "nativeSrc": "2561:21:37", + "nodeType": "YulFunctionCall", + "src": "2561:21:37" + }, + "nativeSrc": "2561:21:37", + "nodeType": "YulExpressionStatement", + "src": "2561:21:37" + }, + { + "nativeSrc": "2591:27:37", + "nodeType": "YulVariableDeclaration", + "src": "2591:27:37", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2606:5:37", + "nodeType": "YulIdentifier", + "src": "2606:5:37" + }, + { + "kind": "number", + "nativeSrc": "2613:4:37", + "nodeType": "YulLiteral", + "src": "2613:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2602:3:37", + "nodeType": "YulIdentifier", + "src": "2602:3:37" + }, + "nativeSrc": "2602:16:37", + "nodeType": "YulFunctionCall", + "src": "2602:16:37" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "2595:3:37", + "nodeType": "YulTypedName", + "src": "2595:3:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2656:83:37", + "nodeType": "YulBlock", + "src": "2656:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2658:77:37", + "nodeType": "YulIdentifier", + "src": "2658:77:37" + }, + "nativeSrc": "2658:79:37", + "nodeType": "YulFunctionCall", + "src": "2658:79:37" + }, + "nativeSrc": "2658:79:37", + "nodeType": "YulExpressionStatement", + "src": "2658:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "2637:3:37", + "nodeType": "YulIdentifier", + "src": "2637:3:37" + }, + { + "name": "length", + "nativeSrc": "2642:6:37", + "nodeType": "YulIdentifier", + "src": "2642:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2633:3:37", + "nodeType": "YulIdentifier", + "src": "2633:3:37" + }, + "nativeSrc": "2633:16:37", + "nodeType": "YulFunctionCall", + "src": "2633:16:37" + }, + { + "name": "end", + "nativeSrc": "2651:3:37", + "nodeType": "YulIdentifier", + "src": "2651:3:37" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2630:2:37", + "nodeType": "YulIdentifier", + "src": "2630:2:37" + }, + "nativeSrc": "2630:25:37", + "nodeType": "YulFunctionCall", + "src": "2630:25:37" + }, + "nativeSrc": "2627:112:37", + "nodeType": "YulIf", + "src": "2627:112:37" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2783:3:37", + "nodeType": "YulIdentifier", + "src": "2783:3:37" + }, + { + "name": "dst", + "nativeSrc": "2788:3:37", + "nodeType": "YulIdentifier", + "src": "2788:3:37" + }, + { + "name": "length", + "nativeSrc": "2793:6:37", + "nodeType": "YulIdentifier", + "src": "2793:6:37" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2748:34:37", + "nodeType": "YulIdentifier", + "src": "2748:34:37" + }, + "nativeSrc": "2748:52:37", + "nodeType": "YulFunctionCall", + "src": "2748:52:37" + }, + "nativeSrc": "2748:52:37", + "nodeType": "YulExpressionStatement", + "src": "2748:52:37" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", + "nativeSrc": "2374:432:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "2441:3:37", + "nodeType": "YulTypedName", + "src": "2441:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "2446:6:37", + "nodeType": "YulTypedName", + "src": "2446:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2454:3:37", + "nodeType": "YulTypedName", + "src": "2454:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2462:5:37", + "nodeType": "YulTypedName", + "src": "2462:5:37", + "type": "" + } + ], + "src": "2374:432:37" + }, + { + "body": { + "nativeSrc": "2897:281:37", + "nodeType": "YulBlock", + "src": "2897:281:37", + "statements": [ + { + "body": { + "nativeSrc": "2946:83:37", + "nodeType": "YulBlock", + "src": "2946:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2948:77:37", + "nodeType": "YulIdentifier", + "src": "2948:77:37" + }, + "nativeSrc": "2948:79:37", + "nodeType": "YulFunctionCall", + "src": "2948:79:37" + }, + "nativeSrc": "2948:79:37", + "nodeType": "YulExpressionStatement", + "src": "2948:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2925:6:37", + "nodeType": "YulIdentifier", + "src": "2925:6:37" + }, + { + "kind": "number", + "nativeSrc": "2933:4:37", + "nodeType": "YulLiteral", + "src": "2933:4:37", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2921:3:37", + "nodeType": "YulIdentifier", + "src": "2921:3:37" + }, + "nativeSrc": "2921:17:37", + "nodeType": "YulFunctionCall", + "src": "2921:17:37" + }, + { + "name": "end", + "nativeSrc": "2940:3:37", + "nodeType": "YulIdentifier", + "src": "2940:3:37" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2917:3:37", + "nodeType": "YulIdentifier", + "src": "2917:3:37" + }, + "nativeSrc": "2917:27:37", + "nodeType": "YulFunctionCall", + "src": "2917:27:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2910:6:37", + "nodeType": "YulIdentifier", + "src": "2910:6:37" + }, + "nativeSrc": "2910:35:37", + "nodeType": "YulFunctionCall", + "src": "2910:35:37" + }, + "nativeSrc": "2907:122:37", + "nodeType": "YulIf", + "src": "2907:122:37" + }, + { + "nativeSrc": "3038:27:37", + "nodeType": "YulVariableDeclaration", + "src": "3038:27:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3058:6:37", + "nodeType": "YulIdentifier", + "src": "3058:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3052:5:37", + "nodeType": "YulIdentifier", + "src": "3052:5:37" + }, + "nativeSrc": "3052:13:37", + "nodeType": "YulFunctionCall", + "src": "3052:13:37" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "3042:6:37", + "nodeType": "YulTypedName", + "src": "3042:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3074:98:37", + "nodeType": "YulAssignment", + "src": "3074:98:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3145:6:37", + "nodeType": "YulIdentifier", + "src": "3145:6:37" + }, + { + "kind": "number", + "nativeSrc": "3153:4:37", + "nodeType": "YulLiteral", + "src": "3153:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3141:3:37", + "nodeType": "YulIdentifier", + "src": "3141:3:37" + }, + "nativeSrc": "3141:17:37", + "nodeType": "YulFunctionCall", + "src": "3141:17:37" + }, + { + "name": "length", + "nativeSrc": "3160:6:37", + "nodeType": "YulIdentifier", + "src": "3160:6:37" + }, + { + "name": "end", + "nativeSrc": "3168:3:37", + "nodeType": "YulIdentifier", + "src": "3168:3:37" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", + "nativeSrc": "3083:57:37", + "nodeType": "YulIdentifier", + "src": "3083:57:37" + }, + "nativeSrc": "3083:89:37", + "nodeType": "YulFunctionCall", + "src": "3083:89:37" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "3074:5:37", + "nodeType": "YulIdentifier", + "src": "3074:5:37" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr_fromMemory", + "nativeSrc": "2825:353:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2875:6:37", + "nodeType": "YulTypedName", + "src": "2875:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2883:3:37", + "nodeType": "YulTypedName", + "src": "2883:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2891:5:37", + "nodeType": "YulTypedName", + "src": "2891:5:37", + "type": "" + } + ], + "src": "2825:353:37" + }, + { + "body": { + "nativeSrc": "3287:575:37", + "nodeType": "YulBlock", + "src": "3287:575:37", + "statements": [ + { + "body": { + "nativeSrc": "3333:83:37", + "nodeType": "YulBlock", + "src": "3333:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3335:77:37", + "nodeType": "YulIdentifier", + "src": "3335:77:37" + }, + "nativeSrc": "3335:79:37", + "nodeType": "YulFunctionCall", + "src": "3335:79:37" + }, + "nativeSrc": "3335:79:37", + "nodeType": "YulExpressionStatement", + "src": "3335:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3308:7:37", + "nodeType": "YulIdentifier", + "src": "3308:7:37" + }, + { + "name": "headStart", + "nativeSrc": "3317:9:37", + "nodeType": "YulIdentifier", + "src": "3317:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3304:3:37", + "nodeType": "YulIdentifier", + "src": "3304:3:37" + }, + "nativeSrc": "3304:23:37", + "nodeType": "YulFunctionCall", + "src": "3304:23:37" + }, + { + "kind": "number", + "nativeSrc": "3329:2:37", + "nodeType": "YulLiteral", + "src": "3329:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3300:3:37", + "nodeType": "YulIdentifier", + "src": "3300:3:37" + }, + "nativeSrc": "3300:32:37", + "nodeType": "YulFunctionCall", + "src": "3300:32:37" + }, + "nativeSrc": "3297:119:37", + "nodeType": "YulIf", + "src": "3297:119:37" + }, + { + "nativeSrc": "3426:128:37", + "nodeType": "YulBlock", + "src": "3426:128:37", + "statements": [ + { + "nativeSrc": "3441:15:37", + "nodeType": "YulVariableDeclaration", + "src": "3441:15:37", + "value": { + "kind": "number", + "nativeSrc": "3455:1:37", + "nodeType": "YulLiteral", + "src": "3455:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3445:6:37", + "nodeType": "YulTypedName", + "src": "3445:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3470:74:37", + "nodeType": "YulAssignment", + "src": "3470:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3516:9:37", + "nodeType": "YulIdentifier", + "src": "3516:9:37" + }, + { + "name": "offset", + "nativeSrc": "3527:6:37", + "nodeType": "YulIdentifier", + "src": "3527:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3512:3:37", + "nodeType": "YulIdentifier", + "src": "3512:3:37" + }, + "nativeSrc": "3512:22:37", + "nodeType": "YulFunctionCall", + "src": "3512:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3536:7:37", + "nodeType": "YulIdentifier", + "src": "3536:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "3480:31:37", + "nodeType": "YulIdentifier", + "src": "3480:31:37" + }, + "nativeSrc": "3480:64:37", + "nodeType": "YulFunctionCall", + "src": "3480:64:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3470:6:37", + "nodeType": "YulIdentifier", + "src": "3470:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "3564:291:37", + "nodeType": "YulBlock", + "src": "3564:291:37", + "statements": [ + { + "nativeSrc": "3579:39:37", + "nodeType": "YulVariableDeclaration", + "src": "3579:39:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3603:9:37", + "nodeType": "YulIdentifier", + "src": "3603:9:37" + }, + { + "kind": "number", + "nativeSrc": "3614:2:37", + "nodeType": "YulLiteral", + "src": "3614:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3599:3:37", + "nodeType": "YulIdentifier", + "src": "3599:3:37" + }, + "nativeSrc": "3599:18:37", + "nodeType": "YulFunctionCall", + "src": "3599:18:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3593:5:37", + "nodeType": "YulIdentifier", + "src": "3593:5:37" + }, + "nativeSrc": "3593:25:37", + "nodeType": "YulFunctionCall", + "src": "3593:25:37" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3583:6:37", + "nodeType": "YulTypedName", + "src": "3583:6:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3665:83:37", + "nodeType": "YulBlock", + "src": "3665:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3667:77:37", + "nodeType": "YulIdentifier", + "src": "3667:77:37" + }, + "nativeSrc": "3667:79:37", + "nodeType": "YulFunctionCall", + "src": "3667:79:37" + }, + "nativeSrc": "3667:79:37", + "nodeType": "YulExpressionStatement", + "src": "3667:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3637:6:37", + "nodeType": "YulIdentifier", + "src": "3637:6:37" + }, + { + "kind": "number", + "nativeSrc": "3645:18:37", + "nodeType": "YulLiteral", + "src": "3645:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3634:2:37", + "nodeType": "YulIdentifier", + "src": "3634:2:37" + }, + "nativeSrc": "3634:30:37", + "nodeType": "YulFunctionCall", + "src": "3634:30:37" + }, + "nativeSrc": "3631:117:37", + "nodeType": "YulIf", + "src": "3631:117:37" + }, + { + "nativeSrc": "3762:83:37", + "nodeType": "YulAssignment", + "src": "3762:83:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3817:9:37", + "nodeType": "YulIdentifier", + "src": "3817:9:37" + }, + { + "name": "offset", + "nativeSrc": "3828:6:37", + "nodeType": "YulIdentifier", + "src": "3828:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3813:3:37", + "nodeType": "YulIdentifier", + "src": "3813:3:37" + }, + "nativeSrc": "3813:22:37", + "nodeType": "YulFunctionCall", + "src": "3813:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3837:7:37", + "nodeType": "YulIdentifier", + "src": "3837:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr_fromMemory", + "nativeSrc": "3772:40:37", + "nodeType": "YulIdentifier", + "src": "3772:40:37" + }, + "nativeSrc": "3772:73:37", + "nodeType": "YulFunctionCall", + "src": "3772:73:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "3762:6:37", + "nodeType": "YulIdentifier", + "src": "3762:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory", + "nativeSrc": "3184:678:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3249:9:37", + "nodeType": "YulTypedName", + "src": "3249:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3260:7:37", + "nodeType": "YulTypedName", + "src": "3260:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3272:6:37", + "nodeType": "YulTypedName", + "src": "3272:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3280:6:37", + "nodeType": "YulTypedName", + "src": "3280:6:37", + "type": "" + } + ], + "src": "3184:678:37" + }, + { + "body": { + "nativeSrc": "3933:53:37", + "nodeType": "YulBlock", + "src": "3933:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3950:3:37", + "nodeType": "YulIdentifier", + "src": "3950:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3973:5:37", + "nodeType": "YulIdentifier", + "src": "3973:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "3955:17:37", + "nodeType": "YulIdentifier", + "src": "3955:17:37" + }, + "nativeSrc": "3955:24:37", + "nodeType": "YulFunctionCall", + "src": "3955:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3943:6:37", + "nodeType": "YulIdentifier", + "src": "3943:6:37" + }, + "nativeSrc": "3943:37:37", + "nodeType": "YulFunctionCall", + "src": "3943:37:37" + }, + "nativeSrc": "3943:37:37", + "nodeType": "YulExpressionStatement", + "src": "3943:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "3868:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3921:5:37", + "nodeType": "YulTypedName", + "src": "3921:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3928:3:37", + "nodeType": "YulTypedName", + "src": "3928:3:37", + "type": "" + } + ], + "src": "3868:118:37" + }, + { + "body": { + "nativeSrc": "4090:124:37", + "nodeType": "YulBlock", + "src": "4090:124:37", + "statements": [ + { + "nativeSrc": "4100:26:37", + "nodeType": "YulAssignment", + "src": "4100:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4112:9:37", + "nodeType": "YulIdentifier", + "src": "4112:9:37" + }, + { + "kind": "number", + "nativeSrc": "4123:2:37", + "nodeType": "YulLiteral", + "src": "4123:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4108:3:37", + "nodeType": "YulIdentifier", + "src": "4108:3:37" + }, + "nativeSrc": "4108:18:37", + "nodeType": "YulFunctionCall", + "src": "4108:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4100:4:37", + "nodeType": "YulIdentifier", + "src": "4100:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4180:6:37", + "nodeType": "YulIdentifier", + "src": "4180:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4193:9:37", + "nodeType": "YulIdentifier", + "src": "4193:9:37" + }, + { + "kind": "number", + "nativeSrc": "4204:1:37", + "nodeType": "YulLiteral", + "src": "4204:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4189:3:37", + "nodeType": "YulIdentifier", + "src": "4189:3:37" + }, + "nativeSrc": "4189:17:37", + "nodeType": "YulFunctionCall", + "src": "4189:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4136:43:37", + "nodeType": "YulIdentifier", + "src": "4136:43:37" + }, + "nativeSrc": "4136:71:37", + "nodeType": "YulFunctionCall", + "src": "4136:71:37" + }, + "nativeSrc": "4136:71:37", + "nodeType": "YulExpressionStatement", + "src": "4136:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "3992:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4062:9:37", + "nodeType": "YulTypedName", + "src": "4062:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4074:6:37", + "nodeType": "YulTypedName", + "src": "4074:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4085:4:37", + "nodeType": "YulTypedName", + "src": "4085:4:37", + "type": "" + } + ], + "src": "3992:222:37" + }, + { + "body": { + "nativeSrc": "4278:40:37", + "nodeType": "YulBlock", + "src": "4278:40:37", + "statements": [ + { + "nativeSrc": "4289:22:37", + "nodeType": "YulAssignment", + "src": "4289:22:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4305:5:37", + "nodeType": "YulIdentifier", + "src": "4305:5:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4299:5:37", + "nodeType": "YulIdentifier", + "src": "4299:5:37" + }, + "nativeSrc": "4299:12:37", + "nodeType": "YulFunctionCall", + "src": "4299:12:37" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "4289:6:37", + "nodeType": "YulIdentifier", + "src": "4289:6:37" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "4220:98:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4261:5:37", + "nodeType": "YulTypedName", + "src": "4261:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "4271:6:37", + "nodeType": "YulTypedName", + "src": "4271:6:37", + "type": "" + } + ], + "src": "4220:98:37" + }, + { + "body": { + "nativeSrc": "4437:34:37", + "nodeType": "YulBlock", + "src": "4437:34:37", + "statements": [ + { + "nativeSrc": "4447:18:37", + "nodeType": "YulAssignment", + "src": "4447:18:37", + "value": { + "name": "pos", + "nativeSrc": "4462:3:37", + "nodeType": "YulIdentifier", + "src": "4462:3:37" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "4447:11:37", + "nodeType": "YulIdentifier", + "src": "4447:11:37" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "4324:147:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "4409:3:37", + "nodeType": "YulTypedName", + "src": "4409:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "4414:6:37", + "nodeType": "YulTypedName", + "src": "4414:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "4425:11:37", + "nodeType": "YulTypedName", + "src": "4425:11:37", + "type": "" + } + ], + "src": "4324:147:37" + }, + { + "body": { + "nativeSrc": "4585:278:37", + "nodeType": "YulBlock", + "src": "4585:278:37", + "statements": [ + { + "nativeSrc": "4595:52:37", + "nodeType": "YulVariableDeclaration", + "src": "4595:52:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4641:5:37", + "nodeType": "YulIdentifier", + "src": "4641:5:37" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "4609:31:37", + "nodeType": "YulIdentifier", + "src": "4609:31:37" + }, + "nativeSrc": "4609:38:37", + "nodeType": "YulFunctionCall", + "src": "4609:38:37" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "4599:6:37", + "nodeType": "YulTypedName", + "src": "4599:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "4656:95:37", + "nodeType": "YulAssignment", + "src": "4656:95:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4739:3:37", + "nodeType": "YulIdentifier", + "src": "4739:3:37" + }, + { + "name": "length", + "nativeSrc": "4744:6:37", + "nodeType": "YulIdentifier", + "src": "4744:6:37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "4663:75:37", + "nodeType": "YulIdentifier", + "src": "4663:75:37" + }, + "nativeSrc": "4663:88:37", + "nodeType": "YulFunctionCall", + "src": "4663:88:37" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "4656:3:37", + "nodeType": "YulIdentifier", + "src": "4656:3:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4799:5:37", + "nodeType": "YulIdentifier", + "src": "4799:5:37" + }, + { + "kind": "number", + "nativeSrc": "4806:4:37", + "nodeType": "YulLiteral", + "src": "4806:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4795:3:37", + "nodeType": "YulIdentifier", + "src": "4795:3:37" + }, + "nativeSrc": "4795:16:37", + "nodeType": "YulFunctionCall", + "src": "4795:16:37" + }, + { + "name": "pos", + "nativeSrc": "4813:3:37", + "nodeType": "YulIdentifier", + "src": "4813:3:37" + }, + { + "name": "length", + "nativeSrc": "4818:6:37", + "nodeType": "YulIdentifier", + "src": "4818:6:37" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "4760:34:37", + "nodeType": "YulIdentifier", + "src": "4760:34:37" + }, + "nativeSrc": "4760:65:37", + "nodeType": "YulFunctionCall", + "src": "4760:65:37" + }, + "nativeSrc": "4760:65:37", + "nodeType": "YulExpressionStatement", + "src": "4760:65:37" + }, + { + "nativeSrc": "4834:23:37", + "nodeType": "YulAssignment", + "src": "4834:23:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4845:3:37", + "nodeType": "YulIdentifier", + "src": "4845:3:37" + }, + { + "name": "length", + "nativeSrc": "4850:6:37", + "nodeType": "YulIdentifier", + "src": "4850:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4841:3:37", + "nodeType": "YulIdentifier", + "src": "4841:3:37" + }, + "nativeSrc": "4841:16:37", + "nodeType": "YulFunctionCall", + "src": "4841:16:37" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "4834:3:37", + "nodeType": "YulIdentifier", + "src": "4834:3:37" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "4477:386:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4566:5:37", + "nodeType": "YulTypedName", + "src": "4566:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4573:3:37", + "nodeType": "YulTypedName", + "src": "4573:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "4581:3:37", + "nodeType": "YulTypedName", + "src": "4581:3:37", + "type": "" + } + ], + "src": "4477:386:37" + }, + { + "body": { + "nativeSrc": "5003:137:37", + "nodeType": "YulBlock", + "src": "5003:137:37", + "statements": [ + { + "nativeSrc": "5014:100:37", + "nodeType": "YulAssignment", + "src": "5014:100:37", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5101:6:37", + "nodeType": "YulIdentifier", + "src": "5101:6:37" + }, + { + "name": "pos", + "nativeSrc": "5110:3:37", + "nodeType": "YulIdentifier", + "src": "5110:3:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "5021:79:37", + "nodeType": "YulIdentifier", + "src": "5021:79:37" + }, + "nativeSrc": "5021:93:37", + "nodeType": "YulFunctionCall", + "src": "5021:93:37" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "5014:3:37", + "nodeType": "YulIdentifier", + "src": "5014:3:37" + } + ] + }, + { + "nativeSrc": "5124:10:37", + "nodeType": "YulAssignment", + "src": "5124:10:37", + "value": { + "name": "pos", + "nativeSrc": "5131:3:37", + "nodeType": "YulIdentifier", + "src": "5131:3:37" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "5124:3:37", + "nodeType": "YulIdentifier", + "src": "5124:3:37" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "4869:271:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "4982:3:37", + "nodeType": "YulTypedName", + "src": "4982:3:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4988:6:37", + "nodeType": "YulTypedName", + "src": "4988:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "4999:3:37", + "nodeType": "YulTypedName", + "src": "4999:3:37", + "type": "" + } + ], + "src": "4869:271:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040526040516106e53803806106e583398181016040528101906100259190610512565b610035828261003c60201b60201c565b50506105f6565b61004b826100c160201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156100ae576100a8828261019460201b60201c565b506100bd565b6100bc61021e60201b60201c565b5b5050565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361011d57806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610114919061057d565b60405180910390fd5b806101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61025b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516101be91906105df565b600060405180830381855af49150503d80600081146101f9576040519150601f19603f3d011682016040523d82523d6000602084013e6101fe565b606091505b509150915061021485838361026560201b60201c565b9250505092915050565b6000341115610259576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000819050919050565b6060826102805761027b826102fa60201b60201c565b6102f2565b600082511480156102a8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b156102ea57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016102e1919061057d565b60405180910390fd5b8190506102f3565b5b9392505050565b60008151111561030d5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061037e82610353565b9050919050565b61038e81610373565b811461039957600080fd5b50565b6000815190506103ab81610385565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610404826103bb565b810181811067ffffffffffffffff82111715610423576104226103cc565b5b80604052505050565b600061043661033f565b905061044282826103fb565b919050565b600067ffffffffffffffff821115610462576104616103cc565b5b61046b826103bb565b9050602081019050919050565b60005b8381101561049657808201518184015260208101905061047b565b60008484015250505050565b60006104b56104b084610447565b61042c565b9050828152602081018484840111156104d1576104d06103b6565b5b6104dc848285610478565b509392505050565b600082601f8301126104f9576104f86103b1565b5b81516105098482602086016104a2565b91505092915050565b6000806040838503121561052957610528610349565b5b60006105378582860161039c565b925050602083015167ffffffffffffffff8111156105585761055761034e565b5b610564858286016104e4565b9150509250929050565b61057781610373565b82525050565b6000602082019050610592600083018461056e565b92915050565b600081519050919050565b600081905092915050565b60006105b982610598565b6105c381856105a3565b93506105d3818560208601610478565b80840191505092915050565b60006105eb82846105ae565b915081905092915050565b60e1806106046000396000f3fe6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea26469706673582212204df182eb6a41a9699a4a167ff1a05d955291c0fe73a59f9d4d336bb70b95124964736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x6E5 CODESIZE SUB DUP1 PUSH2 0x6E5 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0x512 JUMP JUMPDEST PUSH2 0x35 DUP3 DUP3 PUSH2 0x3C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x5F6 JUMP JUMPDEST PUSH2 0x4B DUP3 PUSH2 0xC1 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0xAE JUMPI PUSH2 0xA8 DUP3 DUP3 PUSH2 0x194 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0xBD JUMP JUMPDEST PUSH2 0xBC PUSH2 0x21E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x11D JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x114 SWAP2 SWAP1 PUSH2 0x57D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x150 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x25B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F9 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1FE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x214 DUP6 DUP4 DUP4 PUSH2 0x265 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x259 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x280 JUMPI PUSH2 0x27B DUP3 PUSH2 0x2FA PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2F2 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x2A8 JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x2EA JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x57D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x2F3 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x30D JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1425EA4200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37E DUP3 PUSH2 0x353 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x38E DUP2 PUSH2 0x373 JUMP JUMPDEST DUP2 EQ PUSH2 0x399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3AB DUP2 PUSH2 0x385 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x404 DUP3 PUSH2 0x3BB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x423 JUMPI PUSH2 0x422 PUSH2 0x3CC JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x436 PUSH2 0x33F JUMP JUMPDEST SWAP1 POP PUSH2 0x442 DUP3 DUP3 PUSH2 0x3FB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x462 JUMPI PUSH2 0x461 PUSH2 0x3CC JUMP JUMPDEST JUMPDEST PUSH2 0x46B DUP3 PUSH2 0x3BB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x496 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x47B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B5 PUSH2 0x4B0 DUP5 PUSH2 0x447 JUMP JUMPDEST PUSH2 0x42C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x4D1 JUMPI PUSH2 0x4D0 PUSH2 0x3B6 JUMP JUMPDEST JUMPDEST PUSH2 0x4DC DUP5 DUP3 DUP6 PUSH2 0x478 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4F9 JUMPI PUSH2 0x4F8 PUSH2 0x3B1 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x509 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x529 JUMPI PUSH2 0x528 PUSH2 0x349 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x537 DUP6 DUP3 DUP7 ADD PUSH2 0x39C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x558 JUMPI PUSH2 0x557 PUSH2 0x34E JUMP JUMPDEST JUMPDEST PUSH2 0x564 DUP6 DUP3 DUP7 ADD PUSH2 0x4E4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x577 DUP2 PUSH2 0x373 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x592 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x56E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B9 DUP3 PUSH2 0x598 JUMP JUMPDEST PUSH2 0x5C3 DUP2 DUP6 PUSH2 0x5A3 JUMP JUMPDEST SWAP4 POP PUSH2 0x5D3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x478 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EB DUP3 DUP5 PUSH2 0x5AE JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xE1 DUP1 PUSH2 0x604 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0x27 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x22 PUSH1 0x4C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH1 0x47 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x78 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH1 0xA1 JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4D CALL DUP3 0xEB PUSH11 0x41A9699A4A167FF1A05D95 MSTORE SWAP2 0xC0 INVALID PUSH20 0xA59F9D4D336BB70B95124964736F6C634300081C STOP CALLER ", + "sourceMap": "599:1116:13:-:0;;;1080:133;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1154:52;1184:14;1200:5;1154:29;;;:52;;:::i;:::-;1080:133;;599:1116;;2779:335:14;2870:37;2889:17;2870:18;;;:37;;:::i;:::-;2931:17;2922:27;;;;;;;;;;;;2978:1;2964:4;:11;:15;2960:148;;;2995:53;3024:17;3043:4;2995:28;;;:53;;:::i;:::-;;2960:148;;;3079:18;:16;;;:18;;:::i;:::-;2960:148;2779:335;;:::o;2186:281::-;2296:1;2263:17;:29;;;:34;2259:119;;2349:17;2320:47;;;;;;;;;;;:::i;:::-;;;;;;;;2259:119;2443:17;2387:47;1327:66;2414:19;;2387:26;;;:47;;:::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;2186:281;:::o;4106:253:19:-;4189:12;4214;4228:23;4255:6;:19;;4275:4;4255:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4213:67;;;;4297:55;4324:6;4332:7;4341:10;4297:26;;;:55;;:::i;:::-;4290:62;;;;4106:253;;;;:::o;6598:122:14:-;6660:1;6648:9;:13;6644:70;;;6684:19;;;;;;;;;;;;;;6644:70;6598:122::o;1684:190:22:-;1745:21;1854:4;1844:14;;1684:190;;;:::o;4625:582:19:-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;;;:19;;:::i;:::-;4793:408;;;5066:1;5045:10;:17;:22;:49;;;;;5093:1;5071:6;:18;;;:23;5045:49;5041:119;;;5138:6;5121:24;;;;;;;;;;;:::i;:::-;;;;;;;;5041:119;5180:10;5173:17;;;;4793:408;4625:582;;;;;;:::o;5743:516::-;5894:1;5874:10;:17;:21;5870:383;;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;;;;;;;;;;;;;7:75:37;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:117::-;954:1;951;944:12;968:117;1077:1;1074;1067:12;1091:102;1132:6;1183:2;1179:7;1174:2;1167:5;1163:14;1159:28;1149:38;;1091:102;;;:::o;1199:180::-;1247:77;1244:1;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;1468:27;1490:4;1468:27;:::i;:::-;1460:6;1456:40;1598:6;1586:10;1583:22;1562:18;1550:10;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1541:88;1649:10;1645:2;1638:22;1428:238;1385:281;;:::o;1672:129::-;1706:6;1733:20;;:::i;:::-;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;1958:18;1950:6;1947:30;1944:56;;;1980:18;;:::i;:::-;1944:56;2018:29;2040:6;2018:29;:::i;:::-;2010:37;;2102:4;2096;2092:15;2084:23;;1807:307;;;:::o;2120:248::-;2202:1;2212:113;2226:6;2223:1;2220:13;2212:113;;;2311:1;2306:3;2302:11;2296:18;2292:1;2287:3;2283:11;2276:39;2248:2;2245:1;2241:10;2236:15;;2212:113;;;2359:1;2350:6;2345:3;2341:16;2334:27;2182:186;2120:248;;;:::o;2374:432::-;2462:5;2487:65;2503:48;2544:6;2503:48;:::i;:::-;2487:65;:::i;:::-;2478:74;;2575:6;2568:5;2561:21;2613:4;2606:5;2602:16;2651:3;2642:6;2637:3;2633:16;2630:25;2627:112;;;2658:79;;:::i;:::-;2627:112;2748:52;2793:6;2788:3;2783;2748:52;:::i;:::-;2468:338;2374:432;;;;;:::o;2825:353::-;2891:5;2940:3;2933:4;2925:6;2921:17;2917:27;2907:122;;2948:79;;:::i;:::-;2907:122;3058:6;3052:13;3083:89;3168:3;3160:6;3153:4;3145:6;3141:17;3083:89;:::i;:::-;3074:98;;2897:281;2825:353;;;;:::o;3184:678::-;3272:6;3280;3329:2;3317:9;3308:7;3304:23;3300:32;3297:119;;;3335:79;;:::i;:::-;3297:119;3455:1;3480:64;3536:7;3527:6;3516:9;3512:22;3480:64;:::i;:::-;3470:74;;3426:128;3614:2;3603:9;3599:18;3593:25;3645:18;3637:6;3634:30;3631:117;;;3667:79;;:::i;:::-;3631:117;3772:73;3837:7;3828:6;3817:9;3813:22;3772:73;:::i;:::-;3762:83;;3564:291;3184:678;;;;;:::o;3868:118::-;3955:24;3973:5;3955:24;:::i;:::-;3950:3;3943:37;3868:118;;:::o;3992:222::-;4085:4;4123:2;4112:9;4108:18;4100:26;;4136:71;4204:1;4193:9;4189:17;4180:6;4136:71;:::i;:::-;3992:222;;;;:::o;4220:98::-;4271:6;4305:5;4299:12;4289:22;;4220:98;;;:::o;4324:147::-;4425:11;4462:3;4447:18;;4324:147;;;;:::o;4477:386::-;4581:3;4609:38;4641:5;4609:38;:::i;:::-;4663:88;4744:6;4739:3;4663:88;:::i;:::-;4656:95;;4760:65;4818:6;4813:3;4806:4;4799:5;4795:16;4760:65;:::i;:::-;4850:6;4845:3;4841:16;4834:23;;4585:278;4477:386;;;;:::o;4869:271::-;4999:3;5021:93;5110:3;5101:6;5021:93;:::i;:::-;5014:100;;5131:3;5124:10;;4869:271;;;;:::o;599:1116:13:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_2942": { + "entryPoint": null, + "id": 2942, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_delegate_2918": { + "entryPoint": 39, + "id": 2918, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_fallback_2934": { + "entryPoint": 12, + "id": 2934, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_implementation_2603": { + "entryPoint": 26, + "id": 2603, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getAddressSlot_3568": { + "entryPoint": 161, + "id": 3568, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getImplementation_2665": { + "entryPoint": 76, + "id": 2665, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea26469706673582212204df182eb6a41a9699a4a167ff1a05d955291c0fe73a59f9d4d336bb70b95124964736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0x27 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x22 PUSH1 0x4C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH1 0x47 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x78 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH1 0xA1 JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4D CALL DUP3 0xEB PUSH11 0x41A9699A4A167FF1A05D95 MSTORE SWAP2 0xC0 INVALID PUSH20 0xA59F9D4D336BB70B95124964736F6C634300081C STOP CALLER ", + "sourceMap": "599:1116:13:-:0;;;2649:11:15;:9;:11::i;:::-;599:1116:13;2323:83:15;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;:::-;2323:83::o;1581:132:13:-;1648:7;1674:32;:30;:32::i;:::-;1667:39;;1581:132;:::o;949:895:15:-;1287:14;1284:1;1281;1268:34;1501:1;1498;1482:14;1479:1;1463:14;1456:5;1443:60;1577:16;1574:1;1571;1556:38;1615:6;1687:1;1682:66;;;;1797:16;1794:1;1787:27;1682:66;1717:16;1714:1;1707:27;1957:138:14;2009:7;2035:47;1327:66;2062:19;;2035:26;:47::i;:::-;:53;;;;;;;;;;;;2028:60;;1957:138;:::o;1684:190:22:-;1745:21;1854:4;1844:14;;1684:190;;;:::o" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { + "ERC1967Utils": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "admin", + "type": "address" + } + ], + "name": "ERC1967InvalidAdmin", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "ERC1967InvalidBeacon", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "ERC1967InvalidImplementation", + "type": "error" + }, + { + "inputs": [], + "name": "ERC1967NonPayable", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dc639ac24cab5954ec811b6939dd7ef95580b6c11514f56cd52420b1da89400f64736f6c634300081c0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC PUSH4 0x9AC24CAB MSIZE SLOAD 0xEC DUP2 SHL PUSH10 0x39DD7EF95580B6C11514 CREATE2 PUSH13 0xD52420B1DA89400F64736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "449:6273:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dc639ac24cab5954ec811b6939dd7ef95580b6c11514f56cd52420b1da89400f64736f6c634300081c0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC PUSH4 0x9AC24CAB MSIZE SLOAD 0xEC DUP2 SHL PUSH10 0x39DD7EF95580B6C11514 CREATE2 PUSH13 0xD52420B1DA89400F64736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "449:6273:14:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidBeacon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\",\"errors\":{\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidBeacon(address)\":[{\"details\":\"The `beacon` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1.\"},\"BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is the keccak-256 hash of \\\"eip1967.proxy.beacon\\\" subtracted by 1.\"},\"IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":\"ERC1967Utils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/proxy/Proxy.sol": { + "Proxy": { + "abi": [ + { + "stateMutability": "payable", + "type": "fallback" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { + "IBeacon": { + "abi": [ + { + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "implementation()": "5c60da1b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {UpgradeableBeacon} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol": { + "ProxyAdmin": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "initialOwner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "UPGRADE_INTERFACE_VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ITransparentUpgradeableProxy", + "name": "proxy", + "type": "address" + }, + { + "internalType": "address", + "name": "implementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1622": { + "entryPoint": null, + "id": 1622, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_2976": { + "entryPoint": null, + "id": 2976, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_1718": { + "entryPoint": 187, + "id": 1718, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 461, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 482, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 527, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 542, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 420, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 388, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 383, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 438, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1551:37", + "nodeType": "YulBlock", + "src": "0:1551:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "379:81:37", + "nodeType": "YulBlock", + "src": "379:81:37", + "statements": [ + { + "nativeSrc": "389:65:37", + "nodeType": "YulAssignment", + "src": "389:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "404:5:37", + "nodeType": "YulIdentifier", + "src": "404:5:37" + }, + { + "kind": "number", + "nativeSrc": "411:42:37", + "nodeType": "YulLiteral", + "src": "411:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "400:3:37", + "nodeType": "YulIdentifier", + "src": "400:3:37" + }, + "nativeSrc": "400:54:37", + "nodeType": "YulFunctionCall", + "src": "400:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:37", + "nodeType": "YulIdentifier", + "src": "389:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:37", + "nodeType": "YulTypedName", + "src": "361:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:37", + "nodeType": "YulTypedName", + "src": "371:7:37", + "type": "" + } + ], + "src": "334:126:37" + }, + { + "body": { + "nativeSrc": "511:51:37", + "nodeType": "YulBlock", + "src": "511:51:37", + "statements": [ + { + "nativeSrc": "521:35:37", + "nodeType": "YulAssignment", + "src": "521:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "550:5:37", + "nodeType": "YulIdentifier", + "src": "550:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:37", + "nodeType": "YulIdentifier", + "src": "532:17:37" + }, + "nativeSrc": "532:24:37", + "nodeType": "YulFunctionCall", + "src": "532:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:37", + "nodeType": "YulIdentifier", + "src": "521:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "466:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "493:5:37", + "nodeType": "YulTypedName", + "src": "493:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "503:7:37", + "nodeType": "YulTypedName", + "src": "503:7:37", + "type": "" + } + ], + "src": "466:96:37" + }, + { + "body": { + "nativeSrc": "611:79:37", + "nodeType": "YulBlock", + "src": "611:79:37", + "statements": [ + { + "body": { + "nativeSrc": "668:16:37", + "nodeType": "YulBlock", + "src": "668:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:37", + "nodeType": "YulLiteral", + "src": "677:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:37", + "nodeType": "YulLiteral", + "src": "680:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "670:6:37", + "nodeType": "YulIdentifier", + "src": "670:6:37" + }, + "nativeSrc": "670:12:37", + "nodeType": "YulFunctionCall", + "src": "670:12:37" + }, + "nativeSrc": "670:12:37", + "nodeType": "YulExpressionStatement", + "src": "670:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "634:5:37", + "nodeType": "YulIdentifier", + "src": "634:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:37", + "nodeType": "YulIdentifier", + "src": "659:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:37", + "nodeType": "YulIdentifier", + "src": "641:17:37" + }, + "nativeSrc": "641:24:37", + "nodeType": "YulFunctionCall", + "src": "641:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "631:2:37", + "nodeType": "YulIdentifier", + "src": "631:2:37" + }, + "nativeSrc": "631:35:37", + "nodeType": "YulFunctionCall", + "src": "631:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:37", + "nodeType": "YulIdentifier", + "src": "624:6:37" + }, + "nativeSrc": "624:43:37", + "nodeType": "YulFunctionCall", + "src": "624:43:37" + }, + "nativeSrc": "621:63:37", + "nodeType": "YulIf", + "src": "621:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:37", + "nodeType": "YulTypedName", + "src": "604:5:37", + "type": "" + } + ], + "src": "568:122:37" + }, + { + "body": { + "nativeSrc": "759:80:37", + "nodeType": "YulBlock", + "src": "759:80:37", + "statements": [ + { + "nativeSrc": "769:22:37", + "nodeType": "YulAssignment", + "src": "769:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "784:6:37", + "nodeType": "YulIdentifier", + "src": "784:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "778:5:37", + "nodeType": "YulIdentifier", + "src": "778:5:37" + }, + "nativeSrc": "778:13:37", + "nodeType": "YulFunctionCall", + "src": "778:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "769:5:37", + "nodeType": "YulIdentifier", + "src": "769:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "827:5:37", + "nodeType": "YulIdentifier", + "src": "827:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "800:26:37", + "nodeType": "YulIdentifier", + "src": "800:26:37" + }, + "nativeSrc": "800:33:37", + "nodeType": "YulFunctionCall", + "src": "800:33:37" + }, + "nativeSrc": "800:33:37", + "nodeType": "YulExpressionStatement", + "src": "800:33:37" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "696:143:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "737:6:37", + "nodeType": "YulTypedName", + "src": "737:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "745:3:37", + "nodeType": "YulTypedName", + "src": "745:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "753:5:37", + "nodeType": "YulTypedName", + "src": "753:5:37", + "type": "" + } + ], + "src": "696:143:37" + }, + { + "body": { + "nativeSrc": "922:274:37", + "nodeType": "YulBlock", + "src": "922:274:37", + "statements": [ + { + "body": { + "nativeSrc": "968:83:37", + "nodeType": "YulBlock", + "src": "968:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "970:77:37", + "nodeType": "YulIdentifier", + "src": "970:77:37" + }, + "nativeSrc": "970:79:37", + "nodeType": "YulFunctionCall", + "src": "970:79:37" + }, + "nativeSrc": "970:79:37", + "nodeType": "YulExpressionStatement", + "src": "970:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "943:7:37", + "nodeType": "YulIdentifier", + "src": "943:7:37" + }, + { + "name": "headStart", + "nativeSrc": "952:9:37", + "nodeType": "YulIdentifier", + "src": "952:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "939:3:37", + "nodeType": "YulIdentifier", + "src": "939:3:37" + }, + "nativeSrc": "939:23:37", + "nodeType": "YulFunctionCall", + "src": "939:23:37" + }, + { + "kind": "number", + "nativeSrc": "964:2:37", + "nodeType": "YulLiteral", + "src": "964:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "935:3:37", + "nodeType": "YulIdentifier", + "src": "935:3:37" + }, + "nativeSrc": "935:32:37", + "nodeType": "YulFunctionCall", + "src": "935:32:37" + }, + "nativeSrc": "932:119:37", + "nodeType": "YulIf", + "src": "932:119:37" + }, + { + "nativeSrc": "1061:128:37", + "nodeType": "YulBlock", + "src": "1061:128:37", + "statements": [ + { + "nativeSrc": "1076:15:37", + "nodeType": "YulVariableDeclaration", + "src": "1076:15:37", + "value": { + "kind": "number", + "nativeSrc": "1090:1:37", + "nodeType": "YulLiteral", + "src": "1090:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1080:6:37", + "nodeType": "YulTypedName", + "src": "1080:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1105:74:37", + "nodeType": "YulAssignment", + "src": "1105:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1151:9:37", + "nodeType": "YulIdentifier", + "src": "1151:9:37" + }, + { + "name": "offset", + "nativeSrc": "1162:6:37", + "nodeType": "YulIdentifier", + "src": "1162:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1147:3:37", + "nodeType": "YulIdentifier", + "src": "1147:3:37" + }, + "nativeSrc": "1147:22:37", + "nodeType": "YulFunctionCall", + "src": "1147:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1171:7:37", + "nodeType": "YulIdentifier", + "src": "1171:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "1115:31:37", + "nodeType": "YulIdentifier", + "src": "1115:31:37" + }, + "nativeSrc": "1115:64:37", + "nodeType": "YulFunctionCall", + "src": "1115:64:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1105:6:37", + "nodeType": "YulIdentifier", + "src": "1105:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nativeSrc": "845:351:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "892:9:37", + "nodeType": "YulTypedName", + "src": "892:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "903:7:37", + "nodeType": "YulTypedName", + "src": "903:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "915:6:37", + "nodeType": "YulTypedName", + "src": "915:6:37", + "type": "" + } + ], + "src": "845:351:37" + }, + { + "body": { + "nativeSrc": "1267:53:37", + "nodeType": "YulBlock", + "src": "1267:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1284:3:37", + "nodeType": "YulIdentifier", + "src": "1284:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1307:5:37", + "nodeType": "YulIdentifier", + "src": "1307:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1289:17:37", + "nodeType": "YulIdentifier", + "src": "1289:17:37" + }, + "nativeSrc": "1289:24:37", + "nodeType": "YulFunctionCall", + "src": "1289:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1277:6:37", + "nodeType": "YulIdentifier", + "src": "1277:6:37" + }, + "nativeSrc": "1277:37:37", + "nodeType": "YulFunctionCall", + "src": "1277:37:37" + }, + "nativeSrc": "1277:37:37", + "nodeType": "YulExpressionStatement", + "src": "1277:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1202:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1255:5:37", + "nodeType": "YulTypedName", + "src": "1255:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1262:3:37", + "nodeType": "YulTypedName", + "src": "1262:3:37", + "type": "" + } + ], + "src": "1202:118:37" + }, + { + "body": { + "nativeSrc": "1424:124:37", + "nodeType": "YulBlock", + "src": "1424:124:37", + "statements": [ + { + "nativeSrc": "1434:26:37", + "nodeType": "YulAssignment", + "src": "1434:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1446:9:37", + "nodeType": "YulIdentifier", + "src": "1446:9:37" + }, + { + "kind": "number", + "nativeSrc": "1457:2:37", + "nodeType": "YulLiteral", + "src": "1457:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1442:3:37", + "nodeType": "YulIdentifier", + "src": "1442:3:37" + }, + "nativeSrc": "1442:18:37", + "nodeType": "YulFunctionCall", + "src": "1442:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1434:4:37", + "nodeType": "YulIdentifier", + "src": "1434:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1514:6:37", + "nodeType": "YulIdentifier", + "src": "1514:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1527:9:37", + "nodeType": "YulIdentifier", + "src": "1527:9:37" + }, + { + "kind": "number", + "nativeSrc": "1538:1:37", + "nodeType": "YulLiteral", + "src": "1538:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1523:3:37", + "nodeType": "YulIdentifier", + "src": "1523:3:37" + }, + "nativeSrc": "1523:17:37", + "nodeType": "YulFunctionCall", + "src": "1523:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1470:43:37", + "nodeType": "YulIdentifier", + "src": "1470:43:37" + }, + "nativeSrc": "1470:71:37", + "nodeType": "YulFunctionCall", + "src": "1470:71:37" + }, + "nativeSrc": "1470:71:37", + "nodeType": "YulExpressionStatement", + "src": "1470:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "1326:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1396:9:37", + "nodeType": "YulTypedName", + "src": "1396:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1408:6:37", + "nodeType": "YulTypedName", + "src": "1408:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1419:4:37", + "nodeType": "YulTypedName", + "src": "1419:4:37", + "type": "" + } + ], + "src": "1326:222:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea2646970667358221220395f28e781612bf5bf29aa036b240c8e269d4b342adf86c7c0946886c542932f64736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xA2B CODESIZE SUB DUP1 PUSH2 0xA2B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x1E2 JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C SWAP2 SWAP1 PUSH2 0x21E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB4 DUP2 PUSH2 0xBB PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x239 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AF DUP3 PUSH2 0x184 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BF DUP2 PUSH2 0x1A4 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1DC DUP2 PUSH2 0x1B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x17F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x206 DUP5 DUP3 DUP6 ADD PUSH2 0x1CD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x218 DUP2 PUSH2 0x1A4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x233 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x20F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7E3 DUP1 PUSH2 0x248 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x91 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xD8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x101 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x115 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA6 SWAP2 SWAP1 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x13E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFA SWAP2 SWAP1 PUSH2 0x6FB JUMP JUMPDEST PUSH2 0x1F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x0 PUSH2 0x2FF JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x278 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4F1EF286 CALLVALUE DUP5 DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x182 SWAP3 SWAP2 SWAP1 PUSH2 0x77D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x352E302E30000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x1FA PUSH2 0x278 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x275 DUP2 PUSH2 0x2FF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x280 PUSH2 0x3C3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x29E PUSH2 0x115 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2FD JUMPI PUSH2 0x2C1 PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F6 DUP3 PUSH2 0x3CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x406 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x421 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3FD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x446 DUP3 PUSH2 0x3EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x456 DUP2 PUSH2 0x43B JUMP JUMPDEST DUP2 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x473 DUP2 PUSH2 0x44D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP2 EQ PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49F DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4F8 DUP3 PUSH2 0x4AF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x517 JUMPI PUSH2 0x516 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52A PUSH2 0x427 JUMP JUMPDEST SWAP1 POP PUSH2 0x536 DUP3 DUP3 PUSH2 0x4EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x556 JUMPI PUSH2 0x555 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST PUSH2 0x55F DUP3 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58E PUSH2 0x589 DUP5 PUSH2 0x53B JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5AA JUMPI PUSH2 0x5A9 PUSH2 0x4AA JUMP JUMPDEST JUMPDEST PUSH2 0x5B5 DUP5 DUP3 DUP6 PUSH2 0x56C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5D2 JUMPI PUSH2 0x5D1 PUSH2 0x4A5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5E2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x57B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x604 JUMPI PUSH2 0x603 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x612 DUP7 DUP3 DUP8 ADD PUSH2 0x464 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x623 DUP7 DUP3 DUP8 ADD PUSH2 0x490 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x644 JUMPI PUSH2 0x643 PUSH2 0x436 JUMP JUMPDEST JUMPDEST PUSH2 0x650 DUP7 DUP3 DUP8 ADD PUSH2 0x5BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x694 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x679 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AB DUP3 PUSH2 0x65A JUMP JUMPDEST PUSH2 0x6B5 DUP2 DUP6 PUSH2 0x665 JUMP JUMPDEST SWAP4 POP PUSH2 0x6C5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x6CE DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F3 DUP2 DUP5 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x711 JUMPI PUSH2 0x710 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x71F DUP5 DUP3 DUP6 ADD PUSH2 0x490 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74F DUP3 PUSH2 0x728 JUMP JUMPDEST PUSH2 0x759 DUP2 DUP6 PUSH2 0x733 JUMP JUMPDEST SWAP4 POP PUSH2 0x769 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x772 DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x792 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3FD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x7A4 DUP2 DUP5 PUSH2 0x744 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY PUSH0 0x28 0xE7 DUP2 PUSH2 0x2BF5 0xBF 0x29 0xAA SUB PUSH12 0x240C8E269D4B342ADF86C7C0 SWAP5 PUSH9 0x86C542932F64736F6C PUSH4 0x4300081C STOP CALLER ", + "sourceMap": "502:1442:17:-:0;;;1309:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1351:12;1297:1:8;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;1309:58:17;502:1442;;2912:187:8;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;88:117:37:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;1202:118::-;1289:24;1307:5;1289:24;:::i;:::-;1284:3;1277:37;1202:118;;:::o;1326:222::-;1419:4;1457:2;1446:9;1442:18;1434:26;;1470:71;1538:1;1527:9;1523:17;1514:6;1470:71;:::i;:::-;1326:222;;;;:::o;502:1442:17:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@UPGRADE_INTERFACE_VERSION_2966": { + "entryPoint": 441, + "id": 2966, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkOwner_1656": { + "entryPoint": 632, + "id": 1656, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_msgSender_3401": { + "entryPoint": 963, + "id": 3401, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_transferOwnership_1718": { + "entryPoint": 767, + "id": 1718, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@owner_1639": { + "entryPoint": 277, + "id": 1639, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_1670": { + "entryPoint": 257, + "id": 1670, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@transferOwnership_1698": { + "entryPoint": 498, + "id": 1698, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@upgradeAndCall_3000": { + "entryPoint": 318, + "id": 3000, + "parameterSlots": 3, + "returnSlots": 0 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 1403, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 1168, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 1469, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_contract$_ITransparentUpgradeableProxy_$3022": { + "entryPoint": 1124, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 1787, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$3022t_addresst_bytes_memory_ptr": { + "entryPoint": 1515, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1021, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 1860, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1696, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1036, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 1917, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1753, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 1312, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 1063, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 1339, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 1832, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 1626, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 1843, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 1637, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 1003, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_contract$_ITransparentUpgradeableProxy_$3022": { + "entryPoint": 1083, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 971, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 1388, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 1654, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "finalize_allocation": { + "entryPoint": 1263, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 1216, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 1189, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 1194, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 1078, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 1073, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 1199, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 1145, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_contract$_ITransparentUpgradeableProxy_$3022": { + "entryPoint": 1101, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:7495:37", + "nodeType": "YulBlock", + "src": "0:7495:37", + "statements": [ + { + "body": { + "nativeSrc": "52:81:37", + "nodeType": "YulBlock", + "src": "52:81:37", + "statements": [ + { + "nativeSrc": "62:65:37", + "nodeType": "YulAssignment", + "src": "62:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "77:5:37", + "nodeType": "YulIdentifier", + "src": "77:5:37" + }, + { + "kind": "number", + "nativeSrc": "84:42:37", + "nodeType": "YulLiteral", + "src": "84:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "73:3:37", + "nodeType": "YulIdentifier", + "src": "73:3:37" + }, + "nativeSrc": "73:54:37", + "nodeType": "YulFunctionCall", + "src": "73:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "62:7:37", + "nodeType": "YulIdentifier", + "src": "62:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "7:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "34:5:37", + "nodeType": "YulTypedName", + "src": "34:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "44:7:37", + "nodeType": "YulTypedName", + "src": "44:7:37", + "type": "" + } + ], + "src": "7:126:37" + }, + { + "body": { + "nativeSrc": "184:51:37", + "nodeType": "YulBlock", + "src": "184:51:37", + "statements": [ + { + "nativeSrc": "194:35:37", + "nodeType": "YulAssignment", + "src": "194:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "223:5:37", + "nodeType": "YulIdentifier", + "src": "223:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "205:17:37", + "nodeType": "YulIdentifier", + "src": "205:17:37" + }, + "nativeSrc": "205:24:37", + "nodeType": "YulFunctionCall", + "src": "205:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "194:7:37", + "nodeType": "YulIdentifier", + "src": "194:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "139:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "166:5:37", + "nodeType": "YulTypedName", + "src": "166:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "176:7:37", + "nodeType": "YulTypedName", + "src": "176:7:37", + "type": "" + } + ], + "src": "139:96:37" + }, + { + "body": { + "nativeSrc": "306:53:37", + "nodeType": "YulBlock", + "src": "306:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "323:3:37", + "nodeType": "YulIdentifier", + "src": "323:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "346:5:37", + "nodeType": "YulIdentifier", + "src": "346:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "328:17:37", + "nodeType": "YulIdentifier", + "src": "328:17:37" + }, + "nativeSrc": "328:24:37", + "nodeType": "YulFunctionCall", + "src": "328:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "316:6:37", + "nodeType": "YulIdentifier", + "src": "316:6:37" + }, + "nativeSrc": "316:37:37", + "nodeType": "YulFunctionCall", + "src": "316:37:37" + }, + "nativeSrc": "316:37:37", + "nodeType": "YulExpressionStatement", + "src": "316:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "241:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "294:5:37", + "nodeType": "YulTypedName", + "src": "294:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "301:3:37", + "nodeType": "YulTypedName", + "src": "301:3:37", + "type": "" + } + ], + "src": "241:118:37" + }, + { + "body": { + "nativeSrc": "463:124:37", + "nodeType": "YulBlock", + "src": "463:124:37", + "statements": [ + { + "nativeSrc": "473:26:37", + "nodeType": "YulAssignment", + "src": "473:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "485:9:37", + "nodeType": "YulIdentifier", + "src": "485:9:37" + }, + { + "kind": "number", + "nativeSrc": "496:2:37", + "nodeType": "YulLiteral", + "src": "496:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "481:3:37", + "nodeType": "YulIdentifier", + "src": "481:3:37" + }, + "nativeSrc": "481:18:37", + "nodeType": "YulFunctionCall", + "src": "481:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "473:4:37", + "nodeType": "YulIdentifier", + "src": "473:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "553:6:37", + "nodeType": "YulIdentifier", + "src": "553:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "566:9:37", + "nodeType": "YulIdentifier", + "src": "566:9:37" + }, + { + "kind": "number", + "nativeSrc": "577:1:37", + "nodeType": "YulLiteral", + "src": "577:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "562:3:37", + "nodeType": "YulIdentifier", + "src": "562:3:37" + }, + "nativeSrc": "562:17:37", + "nodeType": "YulFunctionCall", + "src": "562:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "509:43:37", + "nodeType": "YulIdentifier", + "src": "509:43:37" + }, + "nativeSrc": "509:71:37", + "nodeType": "YulFunctionCall", + "src": "509:71:37" + }, + "nativeSrc": "509:71:37", + "nodeType": "YulExpressionStatement", + "src": "509:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "365:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "435:9:37", + "nodeType": "YulTypedName", + "src": "435:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "447:6:37", + "nodeType": "YulTypedName", + "src": "447:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "458:4:37", + "nodeType": "YulTypedName", + "src": "458:4:37", + "type": "" + } + ], + "src": "365:222:37" + }, + { + "body": { + "nativeSrc": "633:35:37", + "nodeType": "YulBlock", + "src": "633:35:37", + "statements": [ + { + "nativeSrc": "643:19:37", + "nodeType": "YulAssignment", + "src": "643:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "659:2:37", + "nodeType": "YulLiteral", + "src": "659:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "653:5:37", + "nodeType": "YulIdentifier", + "src": "653:5:37" + }, + "nativeSrc": "653:9:37", + "nodeType": "YulFunctionCall", + "src": "653:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "643:6:37", + "nodeType": "YulIdentifier", + "src": "643:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "593:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "626:6:37", + "nodeType": "YulTypedName", + "src": "626:6:37", + "type": "" + } + ], + "src": "593:75:37" + }, + { + "body": { + "nativeSrc": "763:28:37", + "nodeType": "YulBlock", + "src": "763:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "780:1:37", + "nodeType": "YulLiteral", + "src": "780:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "783:1:37", + "nodeType": "YulLiteral", + "src": "783:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "773:6:37", + "nodeType": "YulIdentifier", + "src": "773:6:37" + }, + "nativeSrc": "773:12:37", + "nodeType": "YulFunctionCall", + "src": "773:12:37" + }, + "nativeSrc": "773:12:37", + "nodeType": "YulExpressionStatement", + "src": "773:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "674:117:37", + "nodeType": "YulFunctionDefinition", + "src": "674:117:37" + }, + { + "body": { + "nativeSrc": "886:28:37", + "nodeType": "YulBlock", + "src": "886:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "903:1:37", + "nodeType": "YulLiteral", + "src": "903:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "906:1:37", + "nodeType": "YulLiteral", + "src": "906:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "896:6:37", + "nodeType": "YulIdentifier", + "src": "896:6:37" + }, + "nativeSrc": "896:12:37", + "nodeType": "YulFunctionCall", + "src": "896:12:37" + }, + "nativeSrc": "896:12:37", + "nodeType": "YulExpressionStatement", + "src": "896:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "797:117:37", + "nodeType": "YulFunctionDefinition", + "src": "797:117:37" + }, + { + "body": { + "nativeSrc": "1002:51:37", + "nodeType": "YulBlock", + "src": "1002:51:37", + "statements": [ + { + "nativeSrc": "1012:35:37", + "nodeType": "YulAssignment", + "src": "1012:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1041:5:37", + "nodeType": "YulIdentifier", + "src": "1041:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1023:17:37", + "nodeType": "YulIdentifier", + "src": "1023:17:37" + }, + "nativeSrc": "1023:24:37", + "nodeType": "YulFunctionCall", + "src": "1023:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1012:7:37", + "nodeType": "YulIdentifier", + "src": "1012:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_contract$_ITransparentUpgradeableProxy_$3022", + "nativeSrc": "920:133:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "984:5:37", + "nodeType": "YulTypedName", + "src": "984:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "994:7:37", + "nodeType": "YulTypedName", + "src": "994:7:37", + "type": "" + } + ], + "src": "920:133:37" + }, + { + "body": { + "nativeSrc": "1139:116:37", + "nodeType": "YulBlock", + "src": "1139:116:37", + "statements": [ + { + "body": { + "nativeSrc": "1233:16:37", + "nodeType": "YulBlock", + "src": "1233:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1242:1:37", + "nodeType": "YulLiteral", + "src": "1242:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1245:1:37", + "nodeType": "YulLiteral", + "src": "1245:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1235:6:37", + "nodeType": "YulIdentifier", + "src": "1235:6:37" + }, + "nativeSrc": "1235:12:37", + "nodeType": "YulFunctionCall", + "src": "1235:12:37" + }, + "nativeSrc": "1235:12:37", + "nodeType": "YulExpressionStatement", + "src": "1235:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1162:5:37", + "nodeType": "YulIdentifier", + "src": "1162:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1224:5:37", + "nodeType": "YulIdentifier", + "src": "1224:5:37" + } + ], + "functionName": { + "name": "cleanup_t_contract$_ITransparentUpgradeableProxy_$3022", + "nativeSrc": "1169:54:37", + "nodeType": "YulIdentifier", + "src": "1169:54:37" + }, + "nativeSrc": "1169:61:37", + "nodeType": "YulFunctionCall", + "src": "1169:61:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1159:2:37", + "nodeType": "YulIdentifier", + "src": "1159:2:37" + }, + "nativeSrc": "1159:72:37", + "nodeType": "YulFunctionCall", + "src": "1159:72:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1152:6:37", + "nodeType": "YulIdentifier", + "src": "1152:6:37" + }, + "nativeSrc": "1152:80:37", + "nodeType": "YulFunctionCall", + "src": "1152:80:37" + }, + "nativeSrc": "1149:100:37", + "nodeType": "YulIf", + "src": "1149:100:37" + } + ] + }, + "name": "validator_revert_t_contract$_ITransparentUpgradeableProxy_$3022", + "nativeSrc": "1059:196:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1132:5:37", + "nodeType": "YulTypedName", + "src": "1132:5:37", + "type": "" + } + ], + "src": "1059:196:37" + }, + { + "body": { + "nativeSrc": "1350:124:37", + "nodeType": "YulBlock", + "src": "1350:124:37", + "statements": [ + { + "nativeSrc": "1360:29:37", + "nodeType": "YulAssignment", + "src": "1360:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1382:6:37", + "nodeType": "YulIdentifier", + "src": "1382:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1369:12:37", + "nodeType": "YulIdentifier", + "src": "1369:12:37" + }, + "nativeSrc": "1369:20:37", + "nodeType": "YulFunctionCall", + "src": "1369:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1360:5:37", + "nodeType": "YulIdentifier", + "src": "1360:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1462:5:37", + "nodeType": "YulIdentifier", + "src": "1462:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_contract$_ITransparentUpgradeableProxy_$3022", + "nativeSrc": "1398:63:37", + "nodeType": "YulIdentifier", + "src": "1398:63:37" + }, + "nativeSrc": "1398:70:37", + "nodeType": "YulFunctionCall", + "src": "1398:70:37" + }, + "nativeSrc": "1398:70:37", + "nodeType": "YulExpressionStatement", + "src": "1398:70:37" + } + ] + }, + "name": "abi_decode_t_contract$_ITransparentUpgradeableProxy_$3022", + "nativeSrc": "1261:213:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1328:6:37", + "nodeType": "YulTypedName", + "src": "1328:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1336:3:37", + "nodeType": "YulTypedName", + "src": "1336:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1344:5:37", + "nodeType": "YulTypedName", + "src": "1344:5:37", + "type": "" + } + ], + "src": "1261:213:37" + }, + { + "body": { + "nativeSrc": "1523:79:37", + "nodeType": "YulBlock", + "src": "1523:79:37", + "statements": [ + { + "body": { + "nativeSrc": "1580:16:37", + "nodeType": "YulBlock", + "src": "1580:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1589:1:37", + "nodeType": "YulLiteral", + "src": "1589:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1592:1:37", + "nodeType": "YulLiteral", + "src": "1592:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1582:6:37", + "nodeType": "YulIdentifier", + "src": "1582:6:37" + }, + "nativeSrc": "1582:12:37", + "nodeType": "YulFunctionCall", + "src": "1582:12:37" + }, + "nativeSrc": "1582:12:37", + "nodeType": "YulExpressionStatement", + "src": "1582:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1546:5:37", + "nodeType": "YulIdentifier", + "src": "1546:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1571:5:37", + "nodeType": "YulIdentifier", + "src": "1571:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1553:17:37", + "nodeType": "YulIdentifier", + "src": "1553:17:37" + }, + "nativeSrc": "1553:24:37", + "nodeType": "YulFunctionCall", + "src": "1553:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1543:2:37", + "nodeType": "YulIdentifier", + "src": "1543:2:37" + }, + "nativeSrc": "1543:35:37", + "nodeType": "YulFunctionCall", + "src": "1543:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1536:6:37", + "nodeType": "YulIdentifier", + "src": "1536:6:37" + }, + "nativeSrc": "1536:43:37", + "nodeType": "YulFunctionCall", + "src": "1536:43:37" + }, + "nativeSrc": "1533:63:37", + "nodeType": "YulIf", + "src": "1533:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "1480:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1516:5:37", + "nodeType": "YulTypedName", + "src": "1516:5:37", + "type": "" + } + ], + "src": "1480:122:37" + }, + { + "body": { + "nativeSrc": "1660:87:37", + "nodeType": "YulBlock", + "src": "1660:87:37", + "statements": [ + { + "nativeSrc": "1670:29:37", + "nodeType": "YulAssignment", + "src": "1670:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1692:6:37", + "nodeType": "YulIdentifier", + "src": "1692:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1679:12:37", + "nodeType": "YulIdentifier", + "src": "1679:12:37" + }, + "nativeSrc": "1679:20:37", + "nodeType": "YulFunctionCall", + "src": "1679:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1670:5:37", + "nodeType": "YulIdentifier", + "src": "1670:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1735:5:37", + "nodeType": "YulIdentifier", + "src": "1735:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "1708:26:37", + "nodeType": "YulIdentifier", + "src": "1708:26:37" + }, + "nativeSrc": "1708:33:37", + "nodeType": "YulFunctionCall", + "src": "1708:33:37" + }, + "nativeSrc": "1708:33:37", + "nodeType": "YulExpressionStatement", + "src": "1708:33:37" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "1608:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1638:6:37", + "nodeType": "YulTypedName", + "src": "1638:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1646:3:37", + "nodeType": "YulTypedName", + "src": "1646:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1654:5:37", + "nodeType": "YulTypedName", + "src": "1654:5:37", + "type": "" + } + ], + "src": "1608:139:37" + }, + { + "body": { + "nativeSrc": "1842:28:37", + "nodeType": "YulBlock", + "src": "1842:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1859:1:37", + "nodeType": "YulLiteral", + "src": "1859:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1862:1:37", + "nodeType": "YulLiteral", + "src": "1862:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1852:6:37", + "nodeType": "YulIdentifier", + "src": "1852:6:37" + }, + "nativeSrc": "1852:12:37", + "nodeType": "YulFunctionCall", + "src": "1852:12:37" + }, + "nativeSrc": "1852:12:37", + "nodeType": "YulExpressionStatement", + "src": "1852:12:37" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "1753:117:37", + "nodeType": "YulFunctionDefinition", + "src": "1753:117:37" + }, + { + "body": { + "nativeSrc": "1965:28:37", + "nodeType": "YulBlock", + "src": "1965:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1982:1:37", + "nodeType": "YulLiteral", + "src": "1982:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1985:1:37", + "nodeType": "YulLiteral", + "src": "1985:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1975:6:37", + "nodeType": "YulIdentifier", + "src": "1975:6:37" + }, + "nativeSrc": "1975:12:37", + "nodeType": "YulFunctionCall", + "src": "1975:12:37" + }, + "nativeSrc": "1975:12:37", + "nodeType": "YulExpressionStatement", + "src": "1975:12:37" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "1876:117:37", + "nodeType": "YulFunctionDefinition", + "src": "1876:117:37" + }, + { + "body": { + "nativeSrc": "2047:54:37", + "nodeType": "YulBlock", + "src": "2047:54:37", + "statements": [ + { + "nativeSrc": "2057:38:37", + "nodeType": "YulAssignment", + "src": "2057:38:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2075:5:37", + "nodeType": "YulIdentifier", + "src": "2075:5:37" + }, + { + "kind": "number", + "nativeSrc": "2082:2:37", + "nodeType": "YulLiteral", + "src": "2082:2:37", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2071:3:37", + "nodeType": "YulIdentifier", + "src": "2071:3:37" + }, + "nativeSrc": "2071:14:37", + "nodeType": "YulFunctionCall", + "src": "2071:14:37" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2091:2:37", + "nodeType": "YulLiteral", + "src": "2091:2:37", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2087:3:37", + "nodeType": "YulIdentifier", + "src": "2087:3:37" + }, + "nativeSrc": "2087:7:37", + "nodeType": "YulFunctionCall", + "src": "2087:7:37" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2067:3:37", + "nodeType": "YulIdentifier", + "src": "2067:3:37" + }, + "nativeSrc": "2067:28:37", + "nodeType": "YulFunctionCall", + "src": "2067:28:37" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "2057:6:37", + "nodeType": "YulIdentifier", + "src": "2057:6:37" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "1999:102:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2030:5:37", + "nodeType": "YulTypedName", + "src": "2030:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "2040:6:37", + "nodeType": "YulTypedName", + "src": "2040:6:37", + "type": "" + } + ], + "src": "1999:102:37" + }, + { + "body": { + "nativeSrc": "2135:152:37", + "nodeType": "YulBlock", + "src": "2135:152:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2152:1:37", + "nodeType": "YulLiteral", + "src": "2152:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2155:77:37", + "nodeType": "YulLiteral", + "src": "2155:77:37", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2145:6:37", + "nodeType": "YulIdentifier", + "src": "2145:6:37" + }, + "nativeSrc": "2145:88:37", + "nodeType": "YulFunctionCall", + "src": "2145:88:37" + }, + "nativeSrc": "2145:88:37", + "nodeType": "YulExpressionStatement", + "src": "2145:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2249:1:37", + "nodeType": "YulLiteral", + "src": "2249:1:37", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "2252:4:37", + "nodeType": "YulLiteral", + "src": "2252:4:37", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2242:6:37", + "nodeType": "YulIdentifier", + "src": "2242:6:37" + }, + "nativeSrc": "2242:15:37", + "nodeType": "YulFunctionCall", + "src": "2242:15:37" + }, + "nativeSrc": "2242:15:37", + "nodeType": "YulExpressionStatement", + "src": "2242:15:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2273:1:37", + "nodeType": "YulLiteral", + "src": "2273:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2276:4:37", + "nodeType": "YulLiteral", + "src": "2276:4:37", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2266:6:37", + "nodeType": "YulIdentifier", + "src": "2266:6:37" + }, + "nativeSrc": "2266:15:37", + "nodeType": "YulFunctionCall", + "src": "2266:15:37" + }, + "nativeSrc": "2266:15:37", + "nodeType": "YulExpressionStatement", + "src": "2266:15:37" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "2107:180:37", + "nodeType": "YulFunctionDefinition", + "src": "2107:180:37" + }, + { + "body": { + "nativeSrc": "2336:238:37", + "nodeType": "YulBlock", + "src": "2336:238:37", + "statements": [ + { + "nativeSrc": "2346:58:37", + "nodeType": "YulVariableDeclaration", + "src": "2346:58:37", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "2368:6:37", + "nodeType": "YulIdentifier", + "src": "2368:6:37" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "2398:4:37", + "nodeType": "YulIdentifier", + "src": "2398:4:37" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2376:21:37", + "nodeType": "YulIdentifier", + "src": "2376:21:37" + }, + "nativeSrc": "2376:27:37", + "nodeType": "YulFunctionCall", + "src": "2376:27:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2364:3:37", + "nodeType": "YulIdentifier", + "src": "2364:3:37" + }, + "nativeSrc": "2364:40:37", + "nodeType": "YulFunctionCall", + "src": "2364:40:37" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "2350:10:37", + "nodeType": "YulTypedName", + "src": "2350:10:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2515:22:37", + "nodeType": "YulBlock", + "src": "2515:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "2517:16:37", + "nodeType": "YulIdentifier", + "src": "2517:16:37" + }, + "nativeSrc": "2517:18:37", + "nodeType": "YulFunctionCall", + "src": "2517:18:37" + }, + "nativeSrc": "2517:18:37", + "nodeType": "YulExpressionStatement", + "src": "2517:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "2458:10:37", + "nodeType": "YulIdentifier", + "src": "2458:10:37" + }, + { + "kind": "number", + "nativeSrc": "2470:18:37", + "nodeType": "YulLiteral", + "src": "2470:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2455:2:37", + "nodeType": "YulIdentifier", + "src": "2455:2:37" + }, + "nativeSrc": "2455:34:37", + "nodeType": "YulFunctionCall", + "src": "2455:34:37" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "2494:10:37", + "nodeType": "YulIdentifier", + "src": "2494:10:37" + }, + { + "name": "memPtr", + "nativeSrc": "2506:6:37", + "nodeType": "YulIdentifier", + "src": "2506:6:37" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2491:2:37", + "nodeType": "YulIdentifier", + "src": "2491:2:37" + }, + "nativeSrc": "2491:22:37", + "nodeType": "YulFunctionCall", + "src": "2491:22:37" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "2452:2:37", + "nodeType": "YulIdentifier", + "src": "2452:2:37" + }, + "nativeSrc": "2452:62:37", + "nodeType": "YulFunctionCall", + "src": "2452:62:37" + }, + "nativeSrc": "2449:88:37", + "nodeType": "YulIf", + "src": "2449:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2553:2:37", + "nodeType": "YulLiteral", + "src": "2553:2:37", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "2557:10:37", + "nodeType": "YulIdentifier", + "src": "2557:10:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2546:6:37", + "nodeType": "YulIdentifier", + "src": "2546:6:37" + }, + "nativeSrc": "2546:22:37", + "nodeType": "YulFunctionCall", + "src": "2546:22:37" + }, + "nativeSrc": "2546:22:37", + "nodeType": "YulExpressionStatement", + "src": "2546:22:37" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "2293:281:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "2322:6:37", + "nodeType": "YulTypedName", + "src": "2322:6:37", + "type": "" + }, + { + "name": "size", + "nativeSrc": "2330:4:37", + "nodeType": "YulTypedName", + "src": "2330:4:37", + "type": "" + } + ], + "src": "2293:281:37" + }, + { + "body": { + "nativeSrc": "2621:88:37", + "nodeType": "YulBlock", + "src": "2621:88:37", + "statements": [ + { + "nativeSrc": "2631:30:37", + "nodeType": "YulAssignment", + "src": "2631:30:37", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "2641:18:37", + "nodeType": "YulIdentifier", + "src": "2641:18:37" + }, + "nativeSrc": "2641:20:37", + "nodeType": "YulFunctionCall", + "src": "2641:20:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "2631:6:37", + "nodeType": "YulIdentifier", + "src": "2631:6:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "2690:6:37", + "nodeType": "YulIdentifier", + "src": "2690:6:37" + }, + { + "name": "size", + "nativeSrc": "2698:4:37", + "nodeType": "YulIdentifier", + "src": "2698:4:37" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "2670:19:37", + "nodeType": "YulIdentifier", + "src": "2670:19:37" + }, + "nativeSrc": "2670:33:37", + "nodeType": "YulFunctionCall", + "src": "2670:33:37" + }, + "nativeSrc": "2670:33:37", + "nodeType": "YulExpressionStatement", + "src": "2670:33:37" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "2580:129:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "2605:4:37", + "nodeType": "YulTypedName", + "src": "2605:4:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "2614:6:37", + "nodeType": "YulTypedName", + "src": "2614:6:37", + "type": "" + } + ], + "src": "2580:129:37" + }, + { + "body": { + "nativeSrc": "2781:241:37", + "nodeType": "YulBlock", + "src": "2781:241:37", + "statements": [ + { + "body": { + "nativeSrc": "2886:22:37", + "nodeType": "YulBlock", + "src": "2886:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "2888:16:37", + "nodeType": "YulIdentifier", + "src": "2888:16:37" + }, + "nativeSrc": "2888:18:37", + "nodeType": "YulFunctionCall", + "src": "2888:18:37" + }, + "nativeSrc": "2888:18:37", + "nodeType": "YulExpressionStatement", + "src": "2888:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "2858:6:37", + "nodeType": "YulIdentifier", + "src": "2858:6:37" + }, + { + "kind": "number", + "nativeSrc": "2866:18:37", + "nodeType": "YulLiteral", + "src": "2866:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2855:2:37", + "nodeType": "YulIdentifier", + "src": "2855:2:37" + }, + "nativeSrc": "2855:30:37", + "nodeType": "YulFunctionCall", + "src": "2855:30:37" + }, + "nativeSrc": "2852:56:37", + "nodeType": "YulIf", + "src": "2852:56:37" + }, + { + "nativeSrc": "2918:37:37", + "nodeType": "YulAssignment", + "src": "2918:37:37", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "2948:6:37", + "nodeType": "YulIdentifier", + "src": "2948:6:37" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2926:21:37", + "nodeType": "YulIdentifier", + "src": "2926:21:37" + }, + "nativeSrc": "2926:29:37", + "nodeType": "YulFunctionCall", + "src": "2926:29:37" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "2918:4:37", + "nodeType": "YulIdentifier", + "src": "2918:4:37" + } + ] + }, + { + "nativeSrc": "2992:23:37", + "nodeType": "YulAssignment", + "src": "2992:23:37", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "3004:4:37", + "nodeType": "YulIdentifier", + "src": "3004:4:37" + }, + { + "kind": "number", + "nativeSrc": "3010:4:37", + "nodeType": "YulLiteral", + "src": "3010:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3000:3:37", + "nodeType": "YulIdentifier", + "src": "3000:3:37" + }, + "nativeSrc": "3000:15:37", + "nodeType": "YulFunctionCall", + "src": "3000:15:37" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "2992:4:37", + "nodeType": "YulIdentifier", + "src": "2992:4:37" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "2715:307:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "2765:6:37", + "nodeType": "YulTypedName", + "src": "2765:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "2776:4:37", + "nodeType": "YulTypedName", + "src": "2776:4:37", + "type": "" + } + ], + "src": "2715:307:37" + }, + { + "body": { + "nativeSrc": "3092:84:37", + "nodeType": "YulBlock", + "src": "3092:84:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3116:3:37", + "nodeType": "YulIdentifier", + "src": "3116:3:37" + }, + { + "name": "src", + "nativeSrc": "3121:3:37", + "nodeType": "YulIdentifier", + "src": "3121:3:37" + }, + { + "name": "length", + "nativeSrc": "3126:6:37", + "nodeType": "YulIdentifier", + "src": "3126:6:37" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "3103:12:37", + "nodeType": "YulIdentifier", + "src": "3103:12:37" + }, + "nativeSrc": "3103:30:37", + "nodeType": "YulFunctionCall", + "src": "3103:30:37" + }, + "nativeSrc": "3103:30:37", + "nodeType": "YulExpressionStatement", + "src": "3103:30:37" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3153:3:37", + "nodeType": "YulIdentifier", + "src": "3153:3:37" + }, + { + "name": "length", + "nativeSrc": "3158:6:37", + "nodeType": "YulIdentifier", + "src": "3158:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3149:3:37", + "nodeType": "YulIdentifier", + "src": "3149:3:37" + }, + "nativeSrc": "3149:16:37", + "nodeType": "YulFunctionCall", + "src": "3149:16:37" + }, + { + "kind": "number", + "nativeSrc": "3167:1:37", + "nodeType": "YulLiteral", + "src": "3167:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3142:6:37", + "nodeType": "YulIdentifier", + "src": "3142:6:37" + }, + "nativeSrc": "3142:27:37", + "nodeType": "YulFunctionCall", + "src": "3142:27:37" + }, + "nativeSrc": "3142:27:37", + "nodeType": "YulExpressionStatement", + "src": "3142:27:37" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "3028:148:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "3074:3:37", + "nodeType": "YulTypedName", + "src": "3074:3:37", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "3079:3:37", + "nodeType": "YulTypedName", + "src": "3079:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3084:6:37", + "nodeType": "YulTypedName", + "src": "3084:6:37", + "type": "" + } + ], + "src": "3028:148:37" + }, + { + "body": { + "nativeSrc": "3265:340:37", + "nodeType": "YulBlock", + "src": "3265:340:37", + "statements": [ + { + "nativeSrc": "3275:74:37", + "nodeType": "YulAssignment", + "src": "3275:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3341:6:37", + "nodeType": "YulIdentifier", + "src": "3341:6:37" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "3300:40:37", + "nodeType": "YulIdentifier", + "src": "3300:40:37" + }, + "nativeSrc": "3300:48:37", + "nodeType": "YulFunctionCall", + "src": "3300:48:37" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "3284:15:37", + "nodeType": "YulIdentifier", + "src": "3284:15:37" + }, + "nativeSrc": "3284:65:37", + "nodeType": "YulFunctionCall", + "src": "3284:65:37" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "3275:5:37", + "nodeType": "YulIdentifier", + "src": "3275:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "3365:5:37", + "nodeType": "YulIdentifier", + "src": "3365:5:37" + }, + { + "name": "length", + "nativeSrc": "3372:6:37", + "nodeType": "YulIdentifier", + "src": "3372:6:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3358:6:37", + "nodeType": "YulIdentifier", + "src": "3358:6:37" + }, + "nativeSrc": "3358:21:37", + "nodeType": "YulFunctionCall", + "src": "3358:21:37" + }, + "nativeSrc": "3358:21:37", + "nodeType": "YulExpressionStatement", + "src": "3358:21:37" + }, + { + "nativeSrc": "3388:27:37", + "nodeType": "YulVariableDeclaration", + "src": "3388:27:37", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "3403:5:37", + "nodeType": "YulIdentifier", + "src": "3403:5:37" + }, + { + "kind": "number", + "nativeSrc": "3410:4:37", + "nodeType": "YulLiteral", + "src": "3410:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3399:3:37", + "nodeType": "YulIdentifier", + "src": "3399:3:37" + }, + "nativeSrc": "3399:16:37", + "nodeType": "YulFunctionCall", + "src": "3399:16:37" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "3392:3:37", + "nodeType": "YulTypedName", + "src": "3392:3:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3453:83:37", + "nodeType": "YulBlock", + "src": "3453:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "3455:77:37", + "nodeType": "YulIdentifier", + "src": "3455:77:37" + }, + "nativeSrc": "3455:79:37", + "nodeType": "YulFunctionCall", + "src": "3455:79:37" + }, + "nativeSrc": "3455:79:37", + "nodeType": "YulExpressionStatement", + "src": "3455:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "3434:3:37", + "nodeType": "YulIdentifier", + "src": "3434:3:37" + }, + { + "name": "length", + "nativeSrc": "3439:6:37", + "nodeType": "YulIdentifier", + "src": "3439:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3430:3:37", + "nodeType": "YulIdentifier", + "src": "3430:3:37" + }, + "nativeSrc": "3430:16:37", + "nodeType": "YulFunctionCall", + "src": "3430:16:37" + }, + { + "name": "end", + "nativeSrc": "3448:3:37", + "nodeType": "YulIdentifier", + "src": "3448:3:37" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3427:2:37", + "nodeType": "YulIdentifier", + "src": "3427:2:37" + }, + "nativeSrc": "3427:25:37", + "nodeType": "YulFunctionCall", + "src": "3427:25:37" + }, + "nativeSrc": "3424:112:37", + "nodeType": "YulIf", + "src": "3424:112:37" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "3582:3:37", + "nodeType": "YulIdentifier", + "src": "3582:3:37" + }, + { + "name": "dst", + "nativeSrc": "3587:3:37", + "nodeType": "YulIdentifier", + "src": "3587:3:37" + }, + { + "name": "length", + "nativeSrc": "3592:6:37", + "nodeType": "YulIdentifier", + "src": "3592:6:37" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "3545:36:37", + "nodeType": "YulIdentifier", + "src": "3545:36:37" + }, + "nativeSrc": "3545:54:37", + "nodeType": "YulFunctionCall", + "src": "3545:54:37" + }, + "nativeSrc": "3545:54:37", + "nodeType": "YulExpressionStatement", + "src": "3545:54:37" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "3182:423:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "3238:3:37", + "nodeType": "YulTypedName", + "src": "3238:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3243:6:37", + "nodeType": "YulTypedName", + "src": "3243:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3251:3:37", + "nodeType": "YulTypedName", + "src": "3251:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "3259:5:37", + "nodeType": "YulTypedName", + "src": "3259:5:37", + "type": "" + } + ], + "src": "3182:423:37" + }, + { + "body": { + "nativeSrc": "3685:277:37", + "nodeType": "YulBlock", + "src": "3685:277:37", + "statements": [ + { + "body": { + "nativeSrc": "3734:83:37", + "nodeType": "YulBlock", + "src": "3734:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "3736:77:37", + "nodeType": "YulIdentifier", + "src": "3736:77:37" + }, + "nativeSrc": "3736:79:37", + "nodeType": "YulFunctionCall", + "src": "3736:79:37" + }, + "nativeSrc": "3736:79:37", + "nodeType": "YulExpressionStatement", + "src": "3736:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3713:6:37", + "nodeType": "YulIdentifier", + "src": "3713:6:37" + }, + { + "kind": "number", + "nativeSrc": "3721:4:37", + "nodeType": "YulLiteral", + "src": "3721:4:37", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3709:3:37", + "nodeType": "YulIdentifier", + "src": "3709:3:37" + }, + "nativeSrc": "3709:17:37", + "nodeType": "YulFunctionCall", + "src": "3709:17:37" + }, + { + "name": "end", + "nativeSrc": "3728:3:37", + "nodeType": "YulIdentifier", + "src": "3728:3:37" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3705:3:37", + "nodeType": "YulIdentifier", + "src": "3705:3:37" + }, + "nativeSrc": "3705:27:37", + "nodeType": "YulFunctionCall", + "src": "3705:27:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3698:6:37", + "nodeType": "YulIdentifier", + "src": "3698:6:37" + }, + "nativeSrc": "3698:35:37", + "nodeType": "YulFunctionCall", + "src": "3698:35:37" + }, + "nativeSrc": "3695:122:37", + "nodeType": "YulIf", + "src": "3695:122:37" + }, + { + "nativeSrc": "3826:34:37", + "nodeType": "YulVariableDeclaration", + "src": "3826:34:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3853:6:37", + "nodeType": "YulIdentifier", + "src": "3853:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3840:12:37", + "nodeType": "YulIdentifier", + "src": "3840:12:37" + }, + "nativeSrc": "3840:20:37", + "nodeType": "YulFunctionCall", + "src": "3840:20:37" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "3830:6:37", + "nodeType": "YulTypedName", + "src": "3830:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3869:87:37", + "nodeType": "YulAssignment", + "src": "3869:87:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3929:6:37", + "nodeType": "YulIdentifier", + "src": "3929:6:37" + }, + { + "kind": "number", + "nativeSrc": "3937:4:37", + "nodeType": "YulLiteral", + "src": "3937:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3925:3:37", + "nodeType": "YulIdentifier", + "src": "3925:3:37" + }, + "nativeSrc": "3925:17:37", + "nodeType": "YulFunctionCall", + "src": "3925:17:37" + }, + { + "name": "length", + "nativeSrc": "3944:6:37", + "nodeType": "YulIdentifier", + "src": "3944:6:37" + }, + { + "name": "end", + "nativeSrc": "3952:3:37", + "nodeType": "YulIdentifier", + "src": "3952:3:37" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "3878:46:37", + "nodeType": "YulIdentifier", + "src": "3878:46:37" + }, + "nativeSrc": "3878:78:37", + "nodeType": "YulFunctionCall", + "src": "3878:78:37" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "3869:5:37", + "nodeType": "YulIdentifier", + "src": "3869:5:37" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "3624:338:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3663:6:37", + "nodeType": "YulTypedName", + "src": "3663:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3671:3:37", + "nodeType": "YulTypedName", + "src": "3671:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "3679:5:37", + "nodeType": "YulTypedName", + "src": "3679:5:37", + "type": "" + } + ], + "src": "3624:338:37" + }, + { + "body": { + "nativeSrc": "4114:725:37", + "nodeType": "YulBlock", + "src": "4114:725:37", + "statements": [ + { + "body": { + "nativeSrc": "4160:83:37", + "nodeType": "YulBlock", + "src": "4160:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4162:77:37", + "nodeType": "YulIdentifier", + "src": "4162:77:37" + }, + "nativeSrc": "4162:79:37", + "nodeType": "YulFunctionCall", + "src": "4162:79:37" + }, + "nativeSrc": "4162:79:37", + "nodeType": "YulExpressionStatement", + "src": "4162:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4135:7:37", + "nodeType": "YulIdentifier", + "src": "4135:7:37" + }, + { + "name": "headStart", + "nativeSrc": "4144:9:37", + "nodeType": "YulIdentifier", + "src": "4144:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4131:3:37", + "nodeType": "YulIdentifier", + "src": "4131:3:37" + }, + "nativeSrc": "4131:23:37", + "nodeType": "YulFunctionCall", + "src": "4131:23:37" + }, + { + "kind": "number", + "nativeSrc": "4156:2:37", + "nodeType": "YulLiteral", + "src": "4156:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4127:3:37", + "nodeType": "YulIdentifier", + "src": "4127:3:37" + }, + "nativeSrc": "4127:32:37", + "nodeType": "YulFunctionCall", + "src": "4127:32:37" + }, + "nativeSrc": "4124:119:37", + "nodeType": "YulIf", + "src": "4124:119:37" + }, + { + "nativeSrc": "4253:154:37", + "nodeType": "YulBlock", + "src": "4253:154:37", + "statements": [ + { + "nativeSrc": "4268:15:37", + "nodeType": "YulVariableDeclaration", + "src": "4268:15:37", + "value": { + "kind": "number", + "nativeSrc": "4282:1:37", + "nodeType": "YulLiteral", + "src": "4282:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4272:6:37", + "nodeType": "YulTypedName", + "src": "4272:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "4297:100:37", + "nodeType": "YulAssignment", + "src": "4297:100:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4369:9:37", + "nodeType": "YulIdentifier", + "src": "4369:9:37" + }, + { + "name": "offset", + "nativeSrc": "4380:6:37", + "nodeType": "YulIdentifier", + "src": "4380:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4365:3:37", + "nodeType": "YulIdentifier", + "src": "4365:3:37" + }, + "nativeSrc": "4365:22:37", + "nodeType": "YulFunctionCall", + "src": "4365:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4389:7:37", + "nodeType": "YulIdentifier", + "src": "4389:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_ITransparentUpgradeableProxy_$3022", + "nativeSrc": "4307:57:37", + "nodeType": "YulIdentifier", + "src": "4307:57:37" + }, + "nativeSrc": "4307:90:37", + "nodeType": "YulFunctionCall", + "src": "4307:90:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4297:6:37", + "nodeType": "YulIdentifier", + "src": "4297:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "4417:118:37", + "nodeType": "YulBlock", + "src": "4417:118:37", + "statements": [ + { + "nativeSrc": "4432:16:37", + "nodeType": "YulVariableDeclaration", + "src": "4432:16:37", + "value": { + "kind": "number", + "nativeSrc": "4446:2:37", + "nodeType": "YulLiteral", + "src": "4446:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4436:6:37", + "nodeType": "YulTypedName", + "src": "4436:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "4462:63:37", + "nodeType": "YulAssignment", + "src": "4462:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4497:9:37", + "nodeType": "YulIdentifier", + "src": "4497:9:37" + }, + { + "name": "offset", + "nativeSrc": "4508:6:37", + "nodeType": "YulIdentifier", + "src": "4508:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4493:3:37", + "nodeType": "YulIdentifier", + "src": "4493:3:37" + }, + "nativeSrc": "4493:22:37", + "nodeType": "YulFunctionCall", + "src": "4493:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4517:7:37", + "nodeType": "YulIdentifier", + "src": "4517:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4472:20:37", + "nodeType": "YulIdentifier", + "src": "4472:20:37" + }, + "nativeSrc": "4472:53:37", + "nodeType": "YulFunctionCall", + "src": "4472:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4462:6:37", + "nodeType": "YulIdentifier", + "src": "4462:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "4545:287:37", + "nodeType": "YulBlock", + "src": "4545:287:37", + "statements": [ + { + "nativeSrc": "4560:46:37", + "nodeType": "YulVariableDeclaration", + "src": "4560:46:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4591:9:37", + "nodeType": "YulIdentifier", + "src": "4591:9:37" + }, + { + "kind": "number", + "nativeSrc": "4602:2:37", + "nodeType": "YulLiteral", + "src": "4602:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4587:3:37", + "nodeType": "YulIdentifier", + "src": "4587:3:37" + }, + "nativeSrc": "4587:18:37", + "nodeType": "YulFunctionCall", + "src": "4587:18:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4574:12:37", + "nodeType": "YulIdentifier", + "src": "4574:12:37" + }, + "nativeSrc": "4574:32:37", + "nodeType": "YulFunctionCall", + "src": "4574:32:37" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4564:6:37", + "nodeType": "YulTypedName", + "src": "4564:6:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4653:83:37", + "nodeType": "YulBlock", + "src": "4653:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "4655:77:37", + "nodeType": "YulIdentifier", + "src": "4655:77:37" + }, + "nativeSrc": "4655:79:37", + "nodeType": "YulFunctionCall", + "src": "4655:79:37" + }, + "nativeSrc": "4655:79:37", + "nodeType": "YulExpressionStatement", + "src": "4655:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4625:6:37", + "nodeType": "YulIdentifier", + "src": "4625:6:37" + }, + { + "kind": "number", + "nativeSrc": "4633:18:37", + "nodeType": "YulLiteral", + "src": "4633:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4622:2:37", + "nodeType": "YulIdentifier", + "src": "4622:2:37" + }, + "nativeSrc": "4622:30:37", + "nodeType": "YulFunctionCall", + "src": "4622:30:37" + }, + "nativeSrc": "4619:117:37", + "nodeType": "YulIf", + "src": "4619:117:37" + }, + { + "nativeSrc": "4750:72:37", + "nodeType": "YulAssignment", + "src": "4750:72:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4794:9:37", + "nodeType": "YulIdentifier", + "src": "4794:9:37" + }, + { + "name": "offset", + "nativeSrc": "4805:6:37", + "nodeType": "YulIdentifier", + "src": "4805:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4790:3:37", + "nodeType": "YulIdentifier", + "src": "4790:3:37" + }, + "nativeSrc": "4790:22:37", + "nodeType": "YulFunctionCall", + "src": "4790:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4814:7:37", + "nodeType": "YulIdentifier", + "src": "4814:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "4760:29:37", + "nodeType": "YulIdentifier", + "src": "4760:29:37" + }, + "nativeSrc": "4760:62:37", + "nodeType": "YulFunctionCall", + "src": "4760:62:37" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "4750:6:37", + "nodeType": "YulIdentifier", + "src": "4750:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$3022t_addresst_bytes_memory_ptr", + "nativeSrc": "3968:871:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4068:9:37", + "nodeType": "YulTypedName", + "src": "4068:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4079:7:37", + "nodeType": "YulTypedName", + "src": "4079:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4091:6:37", + "nodeType": "YulTypedName", + "src": "4091:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4099:6:37", + "nodeType": "YulTypedName", + "src": "4099:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4107:6:37", + "nodeType": "YulTypedName", + "src": "4107:6:37", + "type": "" + } + ], + "src": "3968:871:37" + }, + { + "body": { + "nativeSrc": "4904:40:37", + "nodeType": "YulBlock", + "src": "4904:40:37", + "statements": [ + { + "nativeSrc": "4915:22:37", + "nodeType": "YulAssignment", + "src": "4915:22:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4931:5:37", + "nodeType": "YulIdentifier", + "src": "4931:5:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4925:5:37", + "nodeType": "YulIdentifier", + "src": "4925:5:37" + }, + "nativeSrc": "4925:12:37", + "nodeType": "YulFunctionCall", + "src": "4925:12:37" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "4915:6:37", + "nodeType": "YulIdentifier", + "src": "4915:6:37" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "4845:99:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4887:5:37", + "nodeType": "YulTypedName", + "src": "4887:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "4897:6:37", + "nodeType": "YulTypedName", + "src": "4897:6:37", + "type": "" + } + ], + "src": "4845:99:37" + }, + { + "body": { + "nativeSrc": "5046:73:37", + "nodeType": "YulBlock", + "src": "5046:73:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5063:3:37", + "nodeType": "YulIdentifier", + "src": "5063:3:37" + }, + { + "name": "length", + "nativeSrc": "5068:6:37", + "nodeType": "YulIdentifier", + "src": "5068:6:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5056:6:37", + "nodeType": "YulIdentifier", + "src": "5056:6:37" + }, + "nativeSrc": "5056:19:37", + "nodeType": "YulFunctionCall", + "src": "5056:19:37" + }, + "nativeSrc": "5056:19:37", + "nodeType": "YulExpressionStatement", + "src": "5056:19:37" + }, + { + "nativeSrc": "5084:29:37", + "nodeType": "YulAssignment", + "src": "5084:29:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5103:3:37", + "nodeType": "YulIdentifier", + "src": "5103:3:37" + }, + { + "kind": "number", + "nativeSrc": "5108:4:37", + "nodeType": "YulLiteral", + "src": "5108:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5099:3:37", + "nodeType": "YulIdentifier", + "src": "5099:3:37" + }, + "nativeSrc": "5099:14:37", + "nodeType": "YulFunctionCall", + "src": "5099:14:37" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "5084:11:37", + "nodeType": "YulIdentifier", + "src": "5084:11:37" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "4950:169:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "5018:3:37", + "nodeType": "YulTypedName", + "src": "5018:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "5023:6:37", + "nodeType": "YulTypedName", + "src": "5023:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "5034:11:37", + "nodeType": "YulTypedName", + "src": "5034:11:37", + "type": "" + } + ], + "src": "4950:169:37" + }, + { + "body": { + "nativeSrc": "5187:186:37", + "nodeType": "YulBlock", + "src": "5187:186:37", + "statements": [ + { + "nativeSrc": "5198:10:37", + "nodeType": "YulVariableDeclaration", + "src": "5198:10:37", + "value": { + "kind": "number", + "nativeSrc": "5207:1:37", + "nodeType": "YulLiteral", + "src": "5207:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "5202:1:37", + "nodeType": "YulTypedName", + "src": "5202:1:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5267:63:37", + "nodeType": "YulBlock", + "src": "5267:63:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "5292:3:37", + "nodeType": "YulIdentifier", + "src": "5292:3:37" + }, + { + "name": "i", + "nativeSrc": "5297:1:37", + "nodeType": "YulIdentifier", + "src": "5297:1:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5288:3:37", + "nodeType": "YulIdentifier", + "src": "5288:3:37" + }, + "nativeSrc": "5288:11:37", + "nodeType": "YulFunctionCall", + "src": "5288:11:37" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "5311:3:37", + "nodeType": "YulIdentifier", + "src": "5311:3:37" + }, + { + "name": "i", + "nativeSrc": "5316:1:37", + "nodeType": "YulIdentifier", + "src": "5316:1:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5307:3:37", + "nodeType": "YulIdentifier", + "src": "5307:3:37" + }, + "nativeSrc": "5307:11:37", + "nodeType": "YulFunctionCall", + "src": "5307:11:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5301:5:37", + "nodeType": "YulIdentifier", + "src": "5301:5:37" + }, + "nativeSrc": "5301:18:37", + "nodeType": "YulFunctionCall", + "src": "5301:18:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5281:6:37", + "nodeType": "YulIdentifier", + "src": "5281:6:37" + }, + "nativeSrc": "5281:39:37", + "nodeType": "YulFunctionCall", + "src": "5281:39:37" + }, + "nativeSrc": "5281:39:37", + "nodeType": "YulExpressionStatement", + "src": "5281:39:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "5228:1:37", + "nodeType": "YulIdentifier", + "src": "5228:1:37" + }, + { + "name": "length", + "nativeSrc": "5231:6:37", + "nodeType": "YulIdentifier", + "src": "5231:6:37" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5225:2:37", + "nodeType": "YulIdentifier", + "src": "5225:2:37" + }, + "nativeSrc": "5225:13:37", + "nodeType": "YulFunctionCall", + "src": "5225:13:37" + }, + "nativeSrc": "5217:113:37", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5239:19:37", + "nodeType": "YulBlock", + "src": "5239:19:37", + "statements": [ + { + "nativeSrc": "5241:15:37", + "nodeType": "YulAssignment", + "src": "5241:15:37", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "5250:1:37", + "nodeType": "YulIdentifier", + "src": "5250:1:37" + }, + { + "kind": "number", + "nativeSrc": "5253:2:37", + "nodeType": "YulLiteral", + "src": "5253:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5246:3:37", + "nodeType": "YulIdentifier", + "src": "5246:3:37" + }, + "nativeSrc": "5246:10:37", + "nodeType": "YulFunctionCall", + "src": "5246:10:37" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "5241:1:37", + "nodeType": "YulIdentifier", + "src": "5241:1:37" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5221:3:37", + "nodeType": "YulBlock", + "src": "5221:3:37", + "statements": [] + }, + "src": "5217:113:37" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "5350:3:37", + "nodeType": "YulIdentifier", + "src": "5350:3:37" + }, + { + "name": "length", + "nativeSrc": "5355:6:37", + "nodeType": "YulIdentifier", + "src": "5355:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5346:3:37", + "nodeType": "YulIdentifier", + "src": "5346:3:37" + }, + "nativeSrc": "5346:16:37", + "nodeType": "YulFunctionCall", + "src": "5346:16:37" + }, + { + "kind": "number", + "nativeSrc": "5364:1:37", + "nodeType": "YulLiteral", + "src": "5364:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5339:6:37", + "nodeType": "YulIdentifier", + "src": "5339:6:37" + }, + "nativeSrc": "5339:27:37", + "nodeType": "YulFunctionCall", + "src": "5339:27:37" + }, + "nativeSrc": "5339:27:37", + "nodeType": "YulExpressionStatement", + "src": "5339:27:37" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "5125:248:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "5169:3:37", + "nodeType": "YulTypedName", + "src": "5169:3:37", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "5174:3:37", + "nodeType": "YulTypedName", + "src": "5174:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "5179:6:37", + "nodeType": "YulTypedName", + "src": "5179:6:37", + "type": "" + } + ], + "src": "5125:248:37" + }, + { + "body": { + "nativeSrc": "5471:285:37", + "nodeType": "YulBlock", + "src": "5471:285:37", + "statements": [ + { + "nativeSrc": "5481:53:37", + "nodeType": "YulVariableDeclaration", + "src": "5481:53:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5528:5:37", + "nodeType": "YulIdentifier", + "src": "5528:5:37" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "5495:32:37", + "nodeType": "YulIdentifier", + "src": "5495:32:37" + }, + "nativeSrc": "5495:39:37", + "nodeType": "YulFunctionCall", + "src": "5495:39:37" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "5485:6:37", + "nodeType": "YulTypedName", + "src": "5485:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "5543:78:37", + "nodeType": "YulAssignment", + "src": "5543:78:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5609:3:37", + "nodeType": "YulIdentifier", + "src": "5609:3:37" + }, + { + "name": "length", + "nativeSrc": "5614:6:37", + "nodeType": "YulIdentifier", + "src": "5614:6:37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "5550:58:37", + "nodeType": "YulIdentifier", + "src": "5550:58:37" + }, + "nativeSrc": "5550:71:37", + "nodeType": "YulFunctionCall", + "src": "5550:71:37" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "5543:3:37", + "nodeType": "YulIdentifier", + "src": "5543:3:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5669:5:37", + "nodeType": "YulIdentifier", + "src": "5669:5:37" + }, + { + "kind": "number", + "nativeSrc": "5676:4:37", + "nodeType": "YulLiteral", + "src": "5676:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5665:3:37", + "nodeType": "YulIdentifier", + "src": "5665:3:37" + }, + "nativeSrc": "5665:16:37", + "nodeType": "YulFunctionCall", + "src": "5665:16:37" + }, + { + "name": "pos", + "nativeSrc": "5683:3:37", + "nodeType": "YulIdentifier", + "src": "5683:3:37" + }, + { + "name": "length", + "nativeSrc": "5688:6:37", + "nodeType": "YulIdentifier", + "src": "5688:6:37" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "5630:34:37", + "nodeType": "YulIdentifier", + "src": "5630:34:37" + }, + "nativeSrc": "5630:65:37", + "nodeType": "YulFunctionCall", + "src": "5630:65:37" + }, + "nativeSrc": "5630:65:37", + "nodeType": "YulExpressionStatement", + "src": "5630:65:37" + }, + { + "nativeSrc": "5704:46:37", + "nodeType": "YulAssignment", + "src": "5704:46:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5715:3:37", + "nodeType": "YulIdentifier", + "src": "5715:3:37" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "5742:6:37", + "nodeType": "YulIdentifier", + "src": "5742:6:37" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "5720:21:37", + "nodeType": "YulIdentifier", + "src": "5720:21:37" + }, + "nativeSrc": "5720:29:37", + "nodeType": "YulFunctionCall", + "src": "5720:29:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5711:3:37", + "nodeType": "YulIdentifier", + "src": "5711:3:37" + }, + "nativeSrc": "5711:39:37", + "nodeType": "YulFunctionCall", + "src": "5711:39:37" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "5704:3:37", + "nodeType": "YulIdentifier", + "src": "5704:3:37" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "5379:377:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5452:5:37", + "nodeType": "YulTypedName", + "src": "5452:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5459:3:37", + "nodeType": "YulTypedName", + "src": "5459:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "5467:3:37", + "nodeType": "YulTypedName", + "src": "5467:3:37", + "type": "" + } + ], + "src": "5379:377:37" + }, + { + "body": { + "nativeSrc": "5880:195:37", + "nodeType": "YulBlock", + "src": "5880:195:37", + "statements": [ + { + "nativeSrc": "5890:26:37", + "nodeType": "YulAssignment", + "src": "5890:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5902:9:37", + "nodeType": "YulIdentifier", + "src": "5902:9:37" + }, + { + "kind": "number", + "nativeSrc": "5913:2:37", + "nodeType": "YulLiteral", + "src": "5913:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5898:3:37", + "nodeType": "YulIdentifier", + "src": "5898:3:37" + }, + "nativeSrc": "5898:18:37", + "nodeType": "YulFunctionCall", + "src": "5898:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5890:4:37", + "nodeType": "YulIdentifier", + "src": "5890:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5937:9:37", + "nodeType": "YulIdentifier", + "src": "5937:9:37" + }, + { + "kind": "number", + "nativeSrc": "5948:1:37", + "nodeType": "YulLiteral", + "src": "5948:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5933:3:37", + "nodeType": "YulIdentifier", + "src": "5933:3:37" + }, + "nativeSrc": "5933:17:37", + "nodeType": "YulFunctionCall", + "src": "5933:17:37" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "5956:4:37", + "nodeType": "YulIdentifier", + "src": "5956:4:37" + }, + { + "name": "headStart", + "nativeSrc": "5962:9:37", + "nodeType": "YulIdentifier", + "src": "5962:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5952:3:37", + "nodeType": "YulIdentifier", + "src": "5952:3:37" + }, + "nativeSrc": "5952:20:37", + "nodeType": "YulFunctionCall", + "src": "5952:20:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5926:6:37", + "nodeType": "YulIdentifier", + "src": "5926:6:37" + }, + "nativeSrc": "5926:47:37", + "nodeType": "YulFunctionCall", + "src": "5926:47:37" + }, + "nativeSrc": "5926:47:37", + "nodeType": "YulExpressionStatement", + "src": "5926:47:37" + }, + { + "nativeSrc": "5982:86:37", + "nodeType": "YulAssignment", + "src": "5982:86:37", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6054:6:37", + "nodeType": "YulIdentifier", + "src": "6054:6:37" + }, + { + "name": "tail", + "nativeSrc": "6063:4:37", + "nodeType": "YulIdentifier", + "src": "6063:4:37" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "5990:63:37", + "nodeType": "YulIdentifier", + "src": "5990:63:37" + }, + "nativeSrc": "5990:78:37", + "nodeType": "YulFunctionCall", + "src": "5990:78:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5982:4:37", + "nodeType": "YulIdentifier", + "src": "5982:4:37" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "5762:313:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5852:9:37", + "nodeType": "YulTypedName", + "src": "5852:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5864:6:37", + "nodeType": "YulTypedName", + "src": "5864:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5875:4:37", + "nodeType": "YulTypedName", + "src": "5875:4:37", + "type": "" + } + ], + "src": "5762:313:37" + }, + { + "body": { + "nativeSrc": "6147:263:37", + "nodeType": "YulBlock", + "src": "6147:263:37", + "statements": [ + { + "body": { + "nativeSrc": "6193:83:37", + "nodeType": "YulBlock", + "src": "6193:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "6195:77:37", + "nodeType": "YulIdentifier", + "src": "6195:77:37" + }, + "nativeSrc": "6195:79:37", + "nodeType": "YulFunctionCall", + "src": "6195:79:37" + }, + "nativeSrc": "6195:79:37", + "nodeType": "YulExpressionStatement", + "src": "6195:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6168:7:37", + "nodeType": "YulIdentifier", + "src": "6168:7:37" + }, + { + "name": "headStart", + "nativeSrc": "6177:9:37", + "nodeType": "YulIdentifier", + "src": "6177:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6164:3:37", + "nodeType": "YulIdentifier", + "src": "6164:3:37" + }, + "nativeSrc": "6164:23:37", + "nodeType": "YulFunctionCall", + "src": "6164:23:37" + }, + { + "kind": "number", + "nativeSrc": "6189:2:37", + "nodeType": "YulLiteral", + "src": "6189:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6160:3:37", + "nodeType": "YulIdentifier", + "src": "6160:3:37" + }, + "nativeSrc": "6160:32:37", + "nodeType": "YulFunctionCall", + "src": "6160:32:37" + }, + "nativeSrc": "6157:119:37", + "nodeType": "YulIf", + "src": "6157:119:37" + }, + { + "nativeSrc": "6286:117:37", + "nodeType": "YulBlock", + "src": "6286:117:37", + "statements": [ + { + "nativeSrc": "6301:15:37", + "nodeType": "YulVariableDeclaration", + "src": "6301:15:37", + "value": { + "kind": "number", + "nativeSrc": "6315:1:37", + "nodeType": "YulLiteral", + "src": "6315:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6305:6:37", + "nodeType": "YulTypedName", + "src": "6305:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6330:63:37", + "nodeType": "YulAssignment", + "src": "6330:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6365:9:37", + "nodeType": "YulIdentifier", + "src": "6365:9:37" + }, + { + "name": "offset", + "nativeSrc": "6376:6:37", + "nodeType": "YulIdentifier", + "src": "6376:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6361:3:37", + "nodeType": "YulIdentifier", + "src": "6361:3:37" + }, + "nativeSrc": "6361:22:37", + "nodeType": "YulFunctionCall", + "src": "6361:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "6385:7:37", + "nodeType": "YulIdentifier", + "src": "6385:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6340:20:37", + "nodeType": "YulIdentifier", + "src": "6340:20:37" + }, + "nativeSrc": "6340:53:37", + "nodeType": "YulFunctionCall", + "src": "6340:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6330:6:37", + "nodeType": "YulIdentifier", + "src": "6330:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "6081:329:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6117:9:37", + "nodeType": "YulTypedName", + "src": "6117:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "6128:7:37", + "nodeType": "YulTypedName", + "src": "6128:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6140:6:37", + "nodeType": "YulTypedName", + "src": "6140:6:37", + "type": "" + } + ], + "src": "6081:329:37" + }, + { + "body": { + "nativeSrc": "6474:40:37", + "nodeType": "YulBlock", + "src": "6474:40:37", + "statements": [ + { + "nativeSrc": "6485:22:37", + "nodeType": "YulAssignment", + "src": "6485:22:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6501:5:37", + "nodeType": "YulIdentifier", + "src": "6501:5:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6495:5:37", + "nodeType": "YulIdentifier", + "src": "6495:5:37" + }, + "nativeSrc": "6495:12:37", + "nodeType": "YulFunctionCall", + "src": "6495:12:37" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "6485:6:37", + "nodeType": "YulIdentifier", + "src": "6485:6:37" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "6416:98:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6457:5:37", + "nodeType": "YulTypedName", + "src": "6457:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "6467:6:37", + "nodeType": "YulTypedName", + "src": "6467:6:37", + "type": "" + } + ], + "src": "6416:98:37" + }, + { + "body": { + "nativeSrc": "6615:73:37", + "nodeType": "YulBlock", + "src": "6615:73:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6632:3:37", + "nodeType": "YulIdentifier", + "src": "6632:3:37" + }, + { + "name": "length", + "nativeSrc": "6637:6:37", + "nodeType": "YulIdentifier", + "src": "6637:6:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6625:6:37", + "nodeType": "YulIdentifier", + "src": "6625:6:37" + }, + "nativeSrc": "6625:19:37", + "nodeType": "YulFunctionCall", + "src": "6625:19:37" + }, + "nativeSrc": "6625:19:37", + "nodeType": "YulExpressionStatement", + "src": "6625:19:37" + }, + { + "nativeSrc": "6653:29:37", + "nodeType": "YulAssignment", + "src": "6653:29:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6672:3:37", + "nodeType": "YulIdentifier", + "src": "6672:3:37" + }, + { + "kind": "number", + "nativeSrc": "6677:4:37", + "nodeType": "YulLiteral", + "src": "6677:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6668:3:37", + "nodeType": "YulIdentifier", + "src": "6668:3:37" + }, + "nativeSrc": "6668:14:37", + "nodeType": "YulFunctionCall", + "src": "6668:14:37" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "6653:11:37", + "nodeType": "YulIdentifier", + "src": "6653:11:37" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "6520:168:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "6587:3:37", + "nodeType": "YulTypedName", + "src": "6587:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "6592:6:37", + "nodeType": "YulTypedName", + "src": "6592:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "6603:11:37", + "nodeType": "YulTypedName", + "src": "6603:11:37", + "type": "" + } + ], + "src": "6520:168:37" + }, + { + "body": { + "nativeSrc": "6784:283:37", + "nodeType": "YulBlock", + "src": "6784:283:37", + "statements": [ + { + "nativeSrc": "6794:52:37", + "nodeType": "YulVariableDeclaration", + "src": "6794:52:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6840:5:37", + "nodeType": "YulIdentifier", + "src": "6840:5:37" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "6808:31:37", + "nodeType": "YulIdentifier", + "src": "6808:31:37" + }, + "nativeSrc": "6808:38:37", + "nodeType": "YulFunctionCall", + "src": "6808:38:37" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "6798:6:37", + "nodeType": "YulTypedName", + "src": "6798:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6855:77:37", + "nodeType": "YulAssignment", + "src": "6855:77:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6920:3:37", + "nodeType": "YulIdentifier", + "src": "6920:3:37" + }, + { + "name": "length", + "nativeSrc": "6925:6:37", + "nodeType": "YulIdentifier", + "src": "6925:6:37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "6862:57:37", + "nodeType": "YulIdentifier", + "src": "6862:57:37" + }, + "nativeSrc": "6862:70:37", + "nodeType": "YulFunctionCall", + "src": "6862:70:37" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "6855:3:37", + "nodeType": "YulIdentifier", + "src": "6855:3:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6980:5:37", + "nodeType": "YulIdentifier", + "src": "6980:5:37" + }, + { + "kind": "number", + "nativeSrc": "6987:4:37", + "nodeType": "YulLiteral", + "src": "6987:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6976:3:37", + "nodeType": "YulIdentifier", + "src": "6976:3:37" + }, + "nativeSrc": "6976:16:37", + "nodeType": "YulFunctionCall", + "src": "6976:16:37" + }, + { + "name": "pos", + "nativeSrc": "6994:3:37", + "nodeType": "YulIdentifier", + "src": "6994:3:37" + }, + { + "name": "length", + "nativeSrc": "6999:6:37", + "nodeType": "YulIdentifier", + "src": "6999:6:37" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "6941:34:37", + "nodeType": "YulIdentifier", + "src": "6941:34:37" + }, + "nativeSrc": "6941:65:37", + "nodeType": "YulFunctionCall", + "src": "6941:65:37" + }, + "nativeSrc": "6941:65:37", + "nodeType": "YulExpressionStatement", + "src": "6941:65:37" + }, + { + "nativeSrc": "7015:46:37", + "nodeType": "YulAssignment", + "src": "7015:46:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7026:3:37", + "nodeType": "YulIdentifier", + "src": "7026:3:37" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7053:6:37", + "nodeType": "YulIdentifier", + "src": "7053:6:37" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "7031:21:37", + "nodeType": "YulIdentifier", + "src": "7031:21:37" + }, + "nativeSrc": "7031:29:37", + "nodeType": "YulFunctionCall", + "src": "7031:29:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7022:3:37", + "nodeType": "YulIdentifier", + "src": "7022:3:37" + }, + "nativeSrc": "7022:39:37", + "nodeType": "YulFunctionCall", + "src": "7022:39:37" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "7015:3:37", + "nodeType": "YulIdentifier", + "src": "7015:3:37" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "6694:373:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6765:5:37", + "nodeType": "YulTypedName", + "src": "6765:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "6772:3:37", + "nodeType": "YulTypedName", + "src": "6772:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "6780:3:37", + "nodeType": "YulTypedName", + "src": "6780:3:37", + "type": "" + } + ], + "src": "6694:373:37" + }, + { + "body": { + "nativeSrc": "7217:275:37", + "nodeType": "YulBlock", + "src": "7217:275:37", + "statements": [ + { + "nativeSrc": "7227:26:37", + "nodeType": "YulAssignment", + "src": "7227:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7239:9:37", + "nodeType": "YulIdentifier", + "src": "7239:9:37" + }, + { + "kind": "number", + "nativeSrc": "7250:2:37", + "nodeType": "YulLiteral", + "src": "7250:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7235:3:37", + "nodeType": "YulIdentifier", + "src": "7235:3:37" + }, + "nativeSrc": "7235:18:37", + "nodeType": "YulFunctionCall", + "src": "7235:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7227:4:37", + "nodeType": "YulIdentifier", + "src": "7227:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7307:6:37", + "nodeType": "YulIdentifier", + "src": "7307:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7320:9:37", + "nodeType": "YulIdentifier", + "src": "7320:9:37" + }, + { + "kind": "number", + "nativeSrc": "7331:1:37", + "nodeType": "YulLiteral", + "src": "7331:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7316:3:37", + "nodeType": "YulIdentifier", + "src": "7316:3:37" + }, + "nativeSrc": "7316:17:37", + "nodeType": "YulFunctionCall", + "src": "7316:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "7263:43:37", + "nodeType": "YulIdentifier", + "src": "7263:43:37" + }, + "nativeSrc": "7263:71:37", + "nodeType": "YulFunctionCall", + "src": "7263:71:37" + }, + "nativeSrc": "7263:71:37", + "nodeType": "YulExpressionStatement", + "src": "7263:71:37" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7355:9:37", + "nodeType": "YulIdentifier", + "src": "7355:9:37" + }, + { + "kind": "number", + "nativeSrc": "7366:2:37", + "nodeType": "YulLiteral", + "src": "7366:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7351:3:37", + "nodeType": "YulIdentifier", + "src": "7351:3:37" + }, + "nativeSrc": "7351:18:37", + "nodeType": "YulFunctionCall", + "src": "7351:18:37" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "7375:4:37", + "nodeType": "YulIdentifier", + "src": "7375:4:37" + }, + { + "name": "headStart", + "nativeSrc": "7381:9:37", + "nodeType": "YulIdentifier", + "src": "7381:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7371:3:37", + "nodeType": "YulIdentifier", + "src": "7371:3:37" + }, + "nativeSrc": "7371:20:37", + "nodeType": "YulFunctionCall", + "src": "7371:20:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7344:6:37", + "nodeType": "YulIdentifier", + "src": "7344:6:37" + }, + "nativeSrc": "7344:48:37", + "nodeType": "YulFunctionCall", + "src": "7344:48:37" + }, + "nativeSrc": "7344:48:37", + "nodeType": "YulExpressionStatement", + "src": "7344:48:37" + }, + { + "nativeSrc": "7401:84:37", + "nodeType": "YulAssignment", + "src": "7401:84:37", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "7471:6:37", + "nodeType": "YulIdentifier", + "src": "7471:6:37" + }, + { + "name": "tail", + "nativeSrc": "7480:4:37", + "nodeType": "YulIdentifier", + "src": "7480:4:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "7409:61:37", + "nodeType": "YulIdentifier", + "src": "7409:61:37" + }, + "nativeSrc": "7409:76:37", + "nodeType": "YulFunctionCall", + "src": "7409:76:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7401:4:37", + "nodeType": "YulIdentifier", + "src": "7401:4:37" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "7073:419:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7181:9:37", + "nodeType": "YulTypedName", + "src": "7181:9:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "7193:6:37", + "nodeType": "YulTypedName", + "src": "7193:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7201:6:37", + "nodeType": "YulTypedName", + "src": "7201:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7212:4:37", + "nodeType": "YulTypedName", + "src": "7212:4:37", + "type": "" + } + ], + "src": "7073:419:37" + } + ] + }, + "contents": "{\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_contract$_ITransparentUpgradeableProxy_$3022(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_ITransparentUpgradeableProxy_$3022(value) {\n if iszero(eq(value, cleanup_t_contract$_ITransparentUpgradeableProxy_$3022(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_ITransparentUpgradeableProxy_$3022(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_ITransparentUpgradeableProxy_$3022(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$3022t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_ITransparentUpgradeableProxy_$3022(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea2646970667358221220395f28e781612bf5bf29aa036b240c8e269d4b342adf86c7c0946886c542932f64736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x91 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xD8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x101 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x115 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA6 SWAP2 SWAP1 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x13E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFA SWAP2 SWAP1 PUSH2 0x6FB JUMP JUMPDEST PUSH2 0x1F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x0 PUSH2 0x2FF JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x278 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4F1EF286 CALLVALUE DUP5 DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x182 SWAP3 SWAP2 SWAP1 PUSH2 0x77D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x352E302E30000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x1FA PUSH2 0x278 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x275 DUP2 PUSH2 0x2FF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x280 PUSH2 0x3C3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x29E PUSH2 0x115 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2FD JUMPI PUSH2 0x2C1 PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F6 DUP3 PUSH2 0x3CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x406 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x421 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3FD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x446 DUP3 PUSH2 0x3EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x456 DUP2 PUSH2 0x43B JUMP JUMPDEST DUP2 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x473 DUP2 PUSH2 0x44D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP2 EQ PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49F DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4F8 DUP3 PUSH2 0x4AF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x517 JUMPI PUSH2 0x516 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52A PUSH2 0x427 JUMP JUMPDEST SWAP1 POP PUSH2 0x536 DUP3 DUP3 PUSH2 0x4EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x556 JUMPI PUSH2 0x555 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST PUSH2 0x55F DUP3 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58E PUSH2 0x589 DUP5 PUSH2 0x53B JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5AA JUMPI PUSH2 0x5A9 PUSH2 0x4AA JUMP JUMPDEST JUMPDEST PUSH2 0x5B5 DUP5 DUP3 DUP6 PUSH2 0x56C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5D2 JUMPI PUSH2 0x5D1 PUSH2 0x4A5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5E2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x57B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x604 JUMPI PUSH2 0x603 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x612 DUP7 DUP3 DUP8 ADD PUSH2 0x464 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x623 DUP7 DUP3 DUP8 ADD PUSH2 0x490 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x644 JUMPI PUSH2 0x643 PUSH2 0x436 JUMP JUMPDEST JUMPDEST PUSH2 0x650 DUP7 DUP3 DUP8 ADD PUSH2 0x5BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x694 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x679 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AB DUP3 PUSH2 0x65A JUMP JUMPDEST PUSH2 0x6B5 DUP2 DUP6 PUSH2 0x665 JUMP JUMPDEST SWAP4 POP PUSH2 0x6C5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x6CE DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F3 DUP2 DUP5 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x711 JUMPI PUSH2 0x710 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x71F DUP5 DUP3 DUP6 ADD PUSH2 0x490 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74F DUP3 PUSH2 0x728 JUMP JUMPDEST PUSH2 0x759 DUP2 DUP6 PUSH2 0x733 JUMP JUMPDEST SWAP4 POP PUSH2 0x769 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x772 DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x792 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3FD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x7A4 DUP2 DUP5 PUSH2 0x744 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY PUSH0 0x28 0xE7 DUP2 PUSH2 0x2BF5 0xBF 0x29 0xAA SUB PUSH12 0x240C8E269D4B342ADF86C7C0 SWAP5 PUSH9 0x86C542932F64736F6C PUSH4 0x4300081C STOP CALLER ", + "sourceMap": "502:1442:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2293:101:8;;;;;;;;;;;;;:::i;:::-;;1638:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1697:245:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1167:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:8;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2293:101;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;1697:245:17:-;1531:13:8;:11;:13::i;:::-;1873:5:17::1;:22;;;1903:9;1914:14;1930:4;1873:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;1697:245:::0;;;:::o;1167:58::-;;;;;;;;;;;;;;;;;;;:::o;2543:215:8:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;2912:187::-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;7:126:37:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:75::-;626:6;659:2;653:9;643:19;;593:75;:::o;674:117::-;783:1;780;773:12;797:117;906:1;903;896:12;920:133;994:7;1023:24;1041:5;1023:24;:::i;:::-;1012:35;;920:133;;;:::o;1059:196::-;1169:61;1224:5;1169:61;:::i;:::-;1162:5;1159:72;1149:100;;1245:1;1242;1235:12;1149:100;1059:196;:::o;1261:213::-;1344:5;1382:6;1369:20;1360:29;;1398:70;1462:5;1398:70;:::i;:::-;1261:213;;;;:::o;1480:122::-;1553:24;1571:5;1553:24;:::i;:::-;1546:5;1543:35;1533:63;;1592:1;1589;1582:12;1533:63;1480:122;:::o;1608:139::-;1654:5;1692:6;1679:20;1670:29;;1708:33;1735:5;1708:33;:::i;:::-;1608:139;;;;:::o;1753:117::-;1862:1;1859;1852:12;1876:117;1985:1;1982;1975:12;1999:102;2040:6;2091:2;2087:7;2082:2;2075:5;2071:14;2067:28;2057:38;;1999:102;;;:::o;2107:180::-;2155:77;2152:1;2145:88;2252:4;2249:1;2242:15;2276:4;2273:1;2266:15;2293:281;2376:27;2398:4;2376:27;:::i;:::-;2368:6;2364:40;2506:6;2494:10;2491:22;2470:18;2458:10;2455:34;2452:62;2449:88;;;2517:18;;:::i;:::-;2449:88;2557:10;2553:2;2546:22;2336:238;2293:281;;:::o;2580:129::-;2614:6;2641:20;;:::i;:::-;2631:30;;2670:33;2698:4;2690:6;2670:33;:::i;:::-;2580:129;;;:::o;2715:307::-;2776:4;2866:18;2858:6;2855:30;2852:56;;;2888:18;;:::i;:::-;2852:56;2926:29;2948:6;2926:29;:::i;:::-;2918:37;;3010:4;3004;3000:15;2992:23;;2715:307;;;:::o;3028:148::-;3126:6;3121:3;3116;3103:30;3167:1;3158:6;3153:3;3149:16;3142:27;3028:148;;;:::o;3182:423::-;3259:5;3284:65;3300:48;3341:6;3300:48;:::i;:::-;3284:65;:::i;:::-;3275:74;;3372:6;3365:5;3358:21;3410:4;3403:5;3399:16;3448:3;3439:6;3434:3;3430:16;3427:25;3424:112;;;3455:79;;:::i;:::-;3424:112;3545:54;3592:6;3587:3;3582;3545:54;:::i;:::-;3265:340;3182:423;;;;;:::o;3624:338::-;3679:5;3728:3;3721:4;3713:6;3709:17;3705:27;3695:122;;3736:79;;:::i;:::-;3695:122;3853:6;3840:20;3878:78;3952:3;3944:6;3937:4;3929:6;3925:17;3878:78;:::i;:::-;3869:87;;3685:277;3624:338;;;;:::o;3968:871::-;4091:6;4099;4107;4156:2;4144:9;4135:7;4131:23;4127:32;4124:119;;;4162:79;;:::i;:::-;4124:119;4282:1;4307:90;4389:7;4380:6;4369:9;4365:22;4307:90;:::i;:::-;4297:100;;4253:154;4446:2;4472:53;4517:7;4508:6;4497:9;4493:22;4472:53;:::i;:::-;4462:63;;4417:118;4602:2;4591:9;4587:18;4574:32;4633:18;4625:6;4622:30;4619:117;;;4655:79;;:::i;:::-;4619:117;4760:62;4814:7;4805:6;4794:9;4790:22;4760:62;:::i;:::-;4750:72;;4545:287;3968:871;;;;;:::o;4845:99::-;4897:6;4931:5;4925:12;4915:22;;4845:99;;;:::o;4950:169::-;5034:11;5068:6;5063:3;5056:19;5108:4;5103:3;5099:14;5084:29;;4950:169;;;;:::o;5125:248::-;5207:1;5217:113;5231:6;5228:1;5225:13;5217:113;;;5316:1;5311:3;5307:11;5301:18;5297:1;5292:3;5288:11;5281:39;5253:2;5250:1;5246:10;5241:15;;5217:113;;;5364:1;5355:6;5350:3;5346:16;5339:27;5187:186;5125:248;;;:::o;5379:377::-;5467:3;5495:39;5528:5;5495:39;:::i;:::-;5550:71;5614:6;5609:3;5550:71;:::i;:::-;5543:78;;5630:65;5688:6;5683:3;5676:4;5669:5;5665:16;5630:65;:::i;:::-;5720:29;5742:6;5720:29;:::i;:::-;5715:3;5711:39;5704:46;;5471:285;5379:377;;;;:::o;5762:313::-;5875:4;5913:2;5902:9;5898:18;5890:26;;5962:9;5956:4;5952:20;5948:1;5937:9;5933:17;5926:47;5990:78;6063:4;6054:6;5990:78;:::i;:::-;5982:86;;5762:313;;;;:::o;6081:329::-;6140:6;6189:2;6177:9;6168:7;6164:23;6160:32;6157:119;;;6195:79;;:::i;:::-;6157:119;6315:1;6340:53;6385:7;6376:6;6365:9;6361:22;6340:53;:::i;:::-;6330:63;;6286:117;6081:329;;;;:::o;6416:98::-;6467:6;6501:5;6495:12;6485:22;;6416:98;;;:::o;6520:168::-;6603:11;6637:6;6632:3;6625:19;6677:4;6672:3;6668:14;6653:29;;6520:168;;;;:::o;6694:373::-;6780:3;6808:38;6840:5;6808:38;:::i;:::-;6862:70;6925:6;6920:3;6862:70;:::i;:::-;6855:77;;6941:65;6999:6;6994:3;6987:4;6980:5;6976:16;6941:65;:::i;:::-;7031:29;7053:6;7031:29;:::i;:::-;7026:3;7022:39;7015:46;;6784:283;6694:373;;;;:::o;7073:419::-;7212:4;7250:2;7239:9;7235:18;7227:26;;7263:71;7331:1;7320:9;7316:17;7307:6;7263:71;:::i;:::-;7381:9;7375:4;7371:20;7366:2;7355:9;7351:18;7344:48;7409:76;7480:4;7471:6;7409:76;:::i;:::-;7401:84;;7073:419;;;;;:::o" + }, + "methodIdentifiers": { + "UPGRADE_INTERFACE_VERSION()": "ad3cb1cc", + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b", + "upgradeAndCall(address,address,bytes)": "9623609d" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Sets the initial owner who can perform upgrades.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeAndCall(address,address,bytes)\":{\"details\":\"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`. - If `data` is empty, `msg.value` must be zero.\"}},\"stateVariables\":{\"UPGRADE_INTERFACE_VERSION\":{\"details\":\"The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address)` and `upgradeAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called, while `upgradeAndCall` will invoke the `receive` function if the second argument is the empty byte string. If the getter returns `\\\"5.0.0\\\"`, only `upgradeAndCall(address,bytes)` is present, and the second argument must be the empty byte string if no function should be called, making it impossible to invoke the `receive` function during an upgrade.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol\":\"ProxyAdmin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol\":{\"keccak256\":\"0x371c3467dccfbb2ac03b0edb4fadaacb9ad382772cee7850a3e73f39a56d102c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3574f1cc3ff2cb985a1385949bd3c76888e8dcf59e6a770ccb15c79b145b39bb\",\"dweb:/ipfs/QmXZDrFibUAMqjoRrpKxV3ma5RR9YfJXZyMrLWJ3bix9gi\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xbc9babed4d136e6cc1e74354aa66538a234f3808645fbe30463b4a7b7d8ca789\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75fd9323b206da2a87924fca2ca996dbd04ae0963f79f66fb8a0ef94bf283a3d\",\"dweb:/ipfs/QmYSoLcvpq8gRo8doLP4nnB43UAT1D3KvfFJRDSD2y4nYu\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 1580, + "contract": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol:ProxyAdmin", + "label": "_owner", + "offset": 0, + "slot": "0", + "type": "t_address" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + } + } + } + } + }, + "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": { + "ITransparentUpgradeableProxy": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "upgradeToAndCall(address,bytes)": "4f1ef286" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy} does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not include them in the ABI so this interface must be used to interact with it.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":\"ITransparentUpgradeableProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol\":{\"keccak256\":\"0x371c3467dccfbb2ac03b0edb4fadaacb9ad382772cee7850a3e73f39a56d102c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3574f1cc3ff2cb985a1385949bd3c76888e8dcf59e6a770ccb15c79b145b39bb\",\"dweb:/ipfs/QmXZDrFibUAMqjoRrpKxV3ma5RR9YfJXZyMrLWJ3bix9gi\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xbc9babed4d136e6cc1e74354aa66538a234f3808645fbe30463b4a7b7d8ca789\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75fd9323b206da2a87924fca2ca996dbd04ae0963f79f66fb8a0ef94bf283a3d\",\"dweb:/ipfs/QmYSoLcvpq8gRo8doLP4nnB43UAT1D3KvfFJRDSD2y4nYu\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "TransparentUpgradeableProxy": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "internalType": "address", + "name": "initialOwner", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "admin", + "type": "address" + } + ], + "name": "ERC1967InvalidAdmin", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "ERC1967InvalidImplementation", + "type": "error" + }, + { + "inputs": [], + "name": "ERC1967NonPayable", + "type": "error" + }, + { + "inputs": [], + "name": "FailedInnerCall", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyDeniedAdminAccess", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_2591": { + "entryPoint": null, + "id": 2591, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_3063": { + "entryPoint": null, + "id": 3063, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkNonPayable_2906": { + "entryPoint": 776, + "id": 2906, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_proxyAdmin_3072": { + "entryPoint": 329, + "id": 3072, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_revert_3388": { + "entryPoint": 1322, + "id": 3388, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setAdmin_2774": { + "entryPoint": 930, + "id": 2774, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setImplementation_2692": { + "entryPoint": 427, + "id": 2692, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@changeAdmin_2791": { + "entryPoint": 339, + "id": 2791, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@functionDelegateCall_3308": { + "entryPoint": 638, + "id": 3308, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getAddressSlot_3568": { + "entryPoint": 1163, + "id": 3568, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getAdmin_2743": { + "entryPoint": 837, + "id": 2743, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@upgradeToAndCall_2726": { + "entryPoint": 196, + "id": 2726, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@verifyCallResultFromTarget_3348": { + "entryPoint": 1173, + "id": 3348, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_bytes_memory_ptr_fromMemory": { + "entryPoint": 1759, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 1497, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr_fromMemory": { + "entryPoint": 1825, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory": { + "entryPoint": 1871, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1982, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 2087, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 2136, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1997, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 2024, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 1641, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 1404, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 1668, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 2065, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 2076, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 1456, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1424, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 1717, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "finalize_allocation": { + "entryPoint": 1592, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 1545, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 1518, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 1523, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 1419, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 1414, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 1528, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 1474, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:5637:37", + "nodeType": "YulBlock", + "src": "0:5637:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "379:81:37", + "nodeType": "YulBlock", + "src": "379:81:37", + "statements": [ + { + "nativeSrc": "389:65:37", + "nodeType": "YulAssignment", + "src": "389:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "404:5:37", + "nodeType": "YulIdentifier", + "src": "404:5:37" + }, + { + "kind": "number", + "nativeSrc": "411:42:37", + "nodeType": "YulLiteral", + "src": "411:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "400:3:37", + "nodeType": "YulIdentifier", + "src": "400:3:37" + }, + "nativeSrc": "400:54:37", + "nodeType": "YulFunctionCall", + "src": "400:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:37", + "nodeType": "YulIdentifier", + "src": "389:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:37", + "nodeType": "YulTypedName", + "src": "361:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:37", + "nodeType": "YulTypedName", + "src": "371:7:37", + "type": "" + } + ], + "src": "334:126:37" + }, + { + "body": { + "nativeSrc": "511:51:37", + "nodeType": "YulBlock", + "src": "511:51:37", + "statements": [ + { + "nativeSrc": "521:35:37", + "nodeType": "YulAssignment", + "src": "521:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "550:5:37", + "nodeType": "YulIdentifier", + "src": "550:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:37", + "nodeType": "YulIdentifier", + "src": "532:17:37" + }, + "nativeSrc": "532:24:37", + "nodeType": "YulFunctionCall", + "src": "532:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:37", + "nodeType": "YulIdentifier", + "src": "521:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "466:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "493:5:37", + "nodeType": "YulTypedName", + "src": "493:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "503:7:37", + "nodeType": "YulTypedName", + "src": "503:7:37", + "type": "" + } + ], + "src": "466:96:37" + }, + { + "body": { + "nativeSrc": "611:79:37", + "nodeType": "YulBlock", + "src": "611:79:37", + "statements": [ + { + "body": { + "nativeSrc": "668:16:37", + "nodeType": "YulBlock", + "src": "668:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:37", + "nodeType": "YulLiteral", + "src": "677:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:37", + "nodeType": "YulLiteral", + "src": "680:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "670:6:37", + "nodeType": "YulIdentifier", + "src": "670:6:37" + }, + "nativeSrc": "670:12:37", + "nodeType": "YulFunctionCall", + "src": "670:12:37" + }, + "nativeSrc": "670:12:37", + "nodeType": "YulExpressionStatement", + "src": "670:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "634:5:37", + "nodeType": "YulIdentifier", + "src": "634:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:37", + "nodeType": "YulIdentifier", + "src": "659:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:37", + "nodeType": "YulIdentifier", + "src": "641:17:37" + }, + "nativeSrc": "641:24:37", + "nodeType": "YulFunctionCall", + "src": "641:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "631:2:37", + "nodeType": "YulIdentifier", + "src": "631:2:37" + }, + "nativeSrc": "631:35:37", + "nodeType": "YulFunctionCall", + "src": "631:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:37", + "nodeType": "YulIdentifier", + "src": "624:6:37" + }, + "nativeSrc": "624:43:37", + "nodeType": "YulFunctionCall", + "src": "624:43:37" + }, + "nativeSrc": "621:63:37", + "nodeType": "YulIf", + "src": "621:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:37", + "nodeType": "YulTypedName", + "src": "604:5:37", + "type": "" + } + ], + "src": "568:122:37" + }, + { + "body": { + "nativeSrc": "759:80:37", + "nodeType": "YulBlock", + "src": "759:80:37", + "statements": [ + { + "nativeSrc": "769:22:37", + "nodeType": "YulAssignment", + "src": "769:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "784:6:37", + "nodeType": "YulIdentifier", + "src": "784:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "778:5:37", + "nodeType": "YulIdentifier", + "src": "778:5:37" + }, + "nativeSrc": "778:13:37", + "nodeType": "YulFunctionCall", + "src": "778:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "769:5:37", + "nodeType": "YulIdentifier", + "src": "769:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "827:5:37", + "nodeType": "YulIdentifier", + "src": "827:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "800:26:37", + "nodeType": "YulIdentifier", + "src": "800:26:37" + }, + "nativeSrc": "800:33:37", + "nodeType": "YulFunctionCall", + "src": "800:33:37" + }, + "nativeSrc": "800:33:37", + "nodeType": "YulExpressionStatement", + "src": "800:33:37" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "696:143:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "737:6:37", + "nodeType": "YulTypedName", + "src": "737:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "745:3:37", + "nodeType": "YulTypedName", + "src": "745:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "753:5:37", + "nodeType": "YulTypedName", + "src": "753:5:37", + "type": "" + } + ], + "src": "696:143:37" + }, + { + "body": { + "nativeSrc": "934:28:37", + "nodeType": "YulBlock", + "src": "934:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "951:1:37", + "nodeType": "YulLiteral", + "src": "951:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "954:1:37", + "nodeType": "YulLiteral", + "src": "954:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "944:6:37", + "nodeType": "YulIdentifier", + "src": "944:6:37" + }, + "nativeSrc": "944:12:37", + "nodeType": "YulFunctionCall", + "src": "944:12:37" + }, + "nativeSrc": "944:12:37", + "nodeType": "YulExpressionStatement", + "src": "944:12:37" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "845:117:37", + "nodeType": "YulFunctionDefinition", + "src": "845:117:37" + }, + { + "body": { + "nativeSrc": "1057:28:37", + "nodeType": "YulBlock", + "src": "1057:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1074:1:37", + "nodeType": "YulLiteral", + "src": "1074:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1077:1:37", + "nodeType": "YulLiteral", + "src": "1077:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1067:6:37", + "nodeType": "YulIdentifier", + "src": "1067:6:37" + }, + "nativeSrc": "1067:12:37", + "nodeType": "YulFunctionCall", + "src": "1067:12:37" + }, + "nativeSrc": "1067:12:37", + "nodeType": "YulExpressionStatement", + "src": "1067:12:37" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "968:117:37", + "nodeType": "YulFunctionDefinition", + "src": "968:117:37" + }, + { + "body": { + "nativeSrc": "1139:54:37", + "nodeType": "YulBlock", + "src": "1139:54:37", + "statements": [ + { + "nativeSrc": "1149:38:37", + "nodeType": "YulAssignment", + "src": "1149:38:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1167:5:37", + "nodeType": "YulIdentifier", + "src": "1167:5:37" + }, + { + "kind": "number", + "nativeSrc": "1174:2:37", + "nodeType": "YulLiteral", + "src": "1174:2:37", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1163:3:37", + "nodeType": "YulIdentifier", + "src": "1163:3:37" + }, + "nativeSrc": "1163:14:37", + "nodeType": "YulFunctionCall", + "src": "1163:14:37" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1183:2:37", + "nodeType": "YulLiteral", + "src": "1183:2:37", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1179:3:37", + "nodeType": "YulIdentifier", + "src": "1179:3:37" + }, + "nativeSrc": "1179:7:37", + "nodeType": "YulFunctionCall", + "src": "1179:7:37" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1159:3:37", + "nodeType": "YulIdentifier", + "src": "1159:3:37" + }, + "nativeSrc": "1159:28:37", + "nodeType": "YulFunctionCall", + "src": "1159:28:37" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "1149:6:37", + "nodeType": "YulIdentifier", + "src": "1149:6:37" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "1091:102:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1122:5:37", + "nodeType": "YulTypedName", + "src": "1122:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "1132:6:37", + "nodeType": "YulTypedName", + "src": "1132:6:37", + "type": "" + } + ], + "src": "1091:102:37" + }, + { + "body": { + "nativeSrc": "1227:152:37", + "nodeType": "YulBlock", + "src": "1227:152:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1244:1:37", + "nodeType": "YulLiteral", + "src": "1244:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1247:77:37", + "nodeType": "YulLiteral", + "src": "1247:77:37", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1237:6:37", + "nodeType": "YulIdentifier", + "src": "1237:6:37" + }, + "nativeSrc": "1237:88:37", + "nodeType": "YulFunctionCall", + "src": "1237:88:37" + }, + "nativeSrc": "1237:88:37", + "nodeType": "YulExpressionStatement", + "src": "1237:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1341:1:37", + "nodeType": "YulLiteral", + "src": "1341:1:37", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "1344:4:37", + "nodeType": "YulLiteral", + "src": "1344:4:37", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1334:6:37", + "nodeType": "YulIdentifier", + "src": "1334:6:37" + }, + "nativeSrc": "1334:15:37", + "nodeType": "YulFunctionCall", + "src": "1334:15:37" + }, + "nativeSrc": "1334:15:37", + "nodeType": "YulExpressionStatement", + "src": "1334:15:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1365:1:37", + "nodeType": "YulLiteral", + "src": "1365:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1368:4:37", + "nodeType": "YulLiteral", + "src": "1368:4:37", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1358:6:37", + "nodeType": "YulIdentifier", + "src": "1358:6:37" + }, + "nativeSrc": "1358:15:37", + "nodeType": "YulFunctionCall", + "src": "1358:15:37" + }, + "nativeSrc": "1358:15:37", + "nodeType": "YulExpressionStatement", + "src": "1358:15:37" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "1199:180:37", + "nodeType": "YulFunctionDefinition", + "src": "1199:180:37" + }, + { + "body": { + "nativeSrc": "1428:238:37", + "nodeType": "YulBlock", + "src": "1428:238:37", + "statements": [ + { + "nativeSrc": "1438:58:37", + "nodeType": "YulVariableDeclaration", + "src": "1438:58:37", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1460:6:37", + "nodeType": "YulIdentifier", + "src": "1460:6:37" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "1490:4:37", + "nodeType": "YulIdentifier", + "src": "1490:4:37" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "1468:21:37", + "nodeType": "YulIdentifier", + "src": "1468:21:37" + }, + "nativeSrc": "1468:27:37", + "nodeType": "YulFunctionCall", + "src": "1468:27:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1456:3:37", + "nodeType": "YulIdentifier", + "src": "1456:3:37" + }, + "nativeSrc": "1456:40:37", + "nodeType": "YulFunctionCall", + "src": "1456:40:37" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "1442:10:37", + "nodeType": "YulTypedName", + "src": "1442:10:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1607:22:37", + "nodeType": "YulBlock", + "src": "1607:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1609:16:37", + "nodeType": "YulIdentifier", + "src": "1609:16:37" + }, + "nativeSrc": "1609:18:37", + "nodeType": "YulFunctionCall", + "src": "1609:18:37" + }, + "nativeSrc": "1609:18:37", + "nodeType": "YulExpressionStatement", + "src": "1609:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1550:10:37", + "nodeType": "YulIdentifier", + "src": "1550:10:37" + }, + { + "kind": "number", + "nativeSrc": "1562:18:37", + "nodeType": "YulLiteral", + "src": "1562:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1547:2:37", + "nodeType": "YulIdentifier", + "src": "1547:2:37" + }, + "nativeSrc": "1547:34:37", + "nodeType": "YulFunctionCall", + "src": "1547:34:37" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1586:10:37", + "nodeType": "YulIdentifier", + "src": "1586:10:37" + }, + { + "name": "memPtr", + "nativeSrc": "1598:6:37", + "nodeType": "YulIdentifier", + "src": "1598:6:37" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1583:2:37", + "nodeType": "YulIdentifier", + "src": "1583:2:37" + }, + "nativeSrc": "1583:22:37", + "nodeType": "YulFunctionCall", + "src": "1583:22:37" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1544:2:37", + "nodeType": "YulIdentifier", + "src": "1544:2:37" + }, + "nativeSrc": "1544:62:37", + "nodeType": "YulFunctionCall", + "src": "1544:62:37" + }, + "nativeSrc": "1541:88:37", + "nodeType": "YulIf", + "src": "1541:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1645:2:37", + "nodeType": "YulLiteral", + "src": "1645:2:37", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1649:10:37", + "nodeType": "YulIdentifier", + "src": "1649:10:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1638:6:37", + "nodeType": "YulIdentifier", + "src": "1638:6:37" + }, + "nativeSrc": "1638:22:37", + "nodeType": "YulFunctionCall", + "src": "1638:22:37" + }, + "nativeSrc": "1638:22:37", + "nodeType": "YulExpressionStatement", + "src": "1638:22:37" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "1385:281:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "1414:6:37", + "nodeType": "YulTypedName", + "src": "1414:6:37", + "type": "" + }, + { + "name": "size", + "nativeSrc": "1422:4:37", + "nodeType": "YulTypedName", + "src": "1422:4:37", + "type": "" + } + ], + "src": "1385:281:37" + }, + { + "body": { + "nativeSrc": "1713:88:37", + "nodeType": "YulBlock", + "src": "1713:88:37", + "statements": [ + { + "nativeSrc": "1723:30:37", + "nodeType": "YulAssignment", + "src": "1723:30:37", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1733:18:37", + "nodeType": "YulIdentifier", + "src": "1733:18:37" + }, + "nativeSrc": "1733:20:37", + "nodeType": "YulFunctionCall", + "src": "1733:20:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1723:6:37", + "nodeType": "YulIdentifier", + "src": "1723:6:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1782:6:37", + "nodeType": "YulIdentifier", + "src": "1782:6:37" + }, + { + "name": "size", + "nativeSrc": "1790:4:37", + "nodeType": "YulIdentifier", + "src": "1790:4:37" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "1762:19:37", + "nodeType": "YulIdentifier", + "src": "1762:19:37" + }, + "nativeSrc": "1762:33:37", + "nodeType": "YulFunctionCall", + "src": "1762:33:37" + }, + "nativeSrc": "1762:33:37", + "nodeType": "YulExpressionStatement", + "src": "1762:33:37" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "1672:129:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "1697:4:37", + "nodeType": "YulTypedName", + "src": "1697:4:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1706:6:37", + "nodeType": "YulTypedName", + "src": "1706:6:37", + "type": "" + } + ], + "src": "1672:129:37" + }, + { + "body": { + "nativeSrc": "1873:241:37", + "nodeType": "YulBlock", + "src": "1873:241:37", + "statements": [ + { + "body": { + "nativeSrc": "1978:22:37", + "nodeType": "YulBlock", + "src": "1978:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1980:16:37", + "nodeType": "YulIdentifier", + "src": "1980:16:37" + }, + "nativeSrc": "1980:18:37", + "nodeType": "YulFunctionCall", + "src": "1980:18:37" + }, + "nativeSrc": "1980:18:37", + "nodeType": "YulExpressionStatement", + "src": "1980:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1950:6:37", + "nodeType": "YulIdentifier", + "src": "1950:6:37" + }, + { + "kind": "number", + "nativeSrc": "1958:18:37", + "nodeType": "YulLiteral", + "src": "1958:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1947:2:37", + "nodeType": "YulIdentifier", + "src": "1947:2:37" + }, + "nativeSrc": "1947:30:37", + "nodeType": "YulFunctionCall", + "src": "1947:30:37" + }, + "nativeSrc": "1944:56:37", + "nodeType": "YulIf", + "src": "1944:56:37" + }, + { + "nativeSrc": "2010:37:37", + "nodeType": "YulAssignment", + "src": "2010:37:37", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "2040:6:37", + "nodeType": "YulIdentifier", + "src": "2040:6:37" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2018:21:37", + "nodeType": "YulIdentifier", + "src": "2018:21:37" + }, + "nativeSrc": "2018:29:37", + "nodeType": "YulFunctionCall", + "src": "2018:29:37" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "2010:4:37", + "nodeType": "YulIdentifier", + "src": "2010:4:37" + } + ] + }, + { + "nativeSrc": "2084:23:37", + "nodeType": "YulAssignment", + "src": "2084:23:37", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "2096:4:37", + "nodeType": "YulIdentifier", + "src": "2096:4:37" + }, + { + "kind": "number", + "nativeSrc": "2102:4:37", + "nodeType": "YulLiteral", + "src": "2102:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2092:3:37", + "nodeType": "YulIdentifier", + "src": "2092:3:37" + }, + "nativeSrc": "2092:15:37", + "nodeType": "YulFunctionCall", + "src": "2092:15:37" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "2084:4:37", + "nodeType": "YulIdentifier", + "src": "2084:4:37" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "1807:307:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "1857:6:37", + "nodeType": "YulTypedName", + "src": "1857:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "1868:4:37", + "nodeType": "YulTypedName", + "src": "1868:4:37", + "type": "" + } + ], + "src": "1807:307:37" + }, + { + "body": { + "nativeSrc": "2182:186:37", + "nodeType": "YulBlock", + "src": "2182:186:37", + "statements": [ + { + "nativeSrc": "2193:10:37", + "nodeType": "YulVariableDeclaration", + "src": "2193:10:37", + "value": { + "kind": "number", + "nativeSrc": "2202:1:37", + "nodeType": "YulLiteral", + "src": "2202:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "2197:1:37", + "nodeType": "YulTypedName", + "src": "2197:1:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2262:63:37", + "nodeType": "YulBlock", + "src": "2262:63:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2287:3:37", + "nodeType": "YulIdentifier", + "src": "2287:3:37" + }, + { + "name": "i", + "nativeSrc": "2292:1:37", + "nodeType": "YulIdentifier", + "src": "2292:1:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2283:3:37", + "nodeType": "YulIdentifier", + "src": "2283:3:37" + }, + "nativeSrc": "2283:11:37", + "nodeType": "YulFunctionCall", + "src": "2283:11:37" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "2306:3:37", + "nodeType": "YulIdentifier", + "src": "2306:3:37" + }, + { + "name": "i", + "nativeSrc": "2311:1:37", + "nodeType": "YulIdentifier", + "src": "2311:1:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2302:3:37", + "nodeType": "YulIdentifier", + "src": "2302:3:37" + }, + "nativeSrc": "2302:11:37", + "nodeType": "YulFunctionCall", + "src": "2302:11:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2296:5:37", + "nodeType": "YulIdentifier", + "src": "2296:5:37" + }, + "nativeSrc": "2296:18:37", + "nodeType": "YulFunctionCall", + "src": "2296:18:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2276:6:37", + "nodeType": "YulIdentifier", + "src": "2276:6:37" + }, + "nativeSrc": "2276:39:37", + "nodeType": "YulFunctionCall", + "src": "2276:39:37" + }, + "nativeSrc": "2276:39:37", + "nodeType": "YulExpressionStatement", + "src": "2276:39:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "2223:1:37", + "nodeType": "YulIdentifier", + "src": "2223:1:37" + }, + { + "name": "length", + "nativeSrc": "2226:6:37", + "nodeType": "YulIdentifier", + "src": "2226:6:37" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2220:2:37", + "nodeType": "YulIdentifier", + "src": "2220:2:37" + }, + "nativeSrc": "2220:13:37", + "nodeType": "YulFunctionCall", + "src": "2220:13:37" + }, + "nativeSrc": "2212:113:37", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "2234:19:37", + "nodeType": "YulBlock", + "src": "2234:19:37", + "statements": [ + { + "nativeSrc": "2236:15:37", + "nodeType": "YulAssignment", + "src": "2236:15:37", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "2245:1:37", + "nodeType": "YulIdentifier", + "src": "2245:1:37" + }, + { + "kind": "number", + "nativeSrc": "2248:2:37", + "nodeType": "YulLiteral", + "src": "2248:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2241:3:37", + "nodeType": "YulIdentifier", + "src": "2241:3:37" + }, + "nativeSrc": "2241:10:37", + "nodeType": "YulFunctionCall", + "src": "2241:10:37" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "2236:1:37", + "nodeType": "YulIdentifier", + "src": "2236:1:37" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "2216:3:37", + "nodeType": "YulBlock", + "src": "2216:3:37", + "statements": [] + }, + "src": "2212:113:37" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2345:3:37", + "nodeType": "YulIdentifier", + "src": "2345:3:37" + }, + { + "name": "length", + "nativeSrc": "2350:6:37", + "nodeType": "YulIdentifier", + "src": "2350:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2341:3:37", + "nodeType": "YulIdentifier", + "src": "2341:3:37" + }, + "nativeSrc": "2341:16:37", + "nodeType": "YulFunctionCall", + "src": "2341:16:37" + }, + { + "kind": "number", + "nativeSrc": "2359:1:37", + "nodeType": "YulLiteral", + "src": "2359:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2334:6:37", + "nodeType": "YulIdentifier", + "src": "2334:6:37" + }, + "nativeSrc": "2334:27:37", + "nodeType": "YulFunctionCall", + "src": "2334:27:37" + }, + "nativeSrc": "2334:27:37", + "nodeType": "YulExpressionStatement", + "src": "2334:27:37" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2120:248:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "2164:3:37", + "nodeType": "YulTypedName", + "src": "2164:3:37", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "2169:3:37", + "nodeType": "YulTypedName", + "src": "2169:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "2174:6:37", + "nodeType": "YulTypedName", + "src": "2174:6:37", + "type": "" + } + ], + "src": "2120:248:37" + }, + { + "body": { + "nativeSrc": "2468:338:37", + "nodeType": "YulBlock", + "src": "2468:338:37", + "statements": [ + { + "nativeSrc": "2478:74:37", + "nodeType": "YulAssignment", + "src": "2478:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2544:6:37", + "nodeType": "YulIdentifier", + "src": "2544:6:37" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "2503:40:37", + "nodeType": "YulIdentifier", + "src": "2503:40:37" + }, + "nativeSrc": "2503:48:37", + "nodeType": "YulFunctionCall", + "src": "2503:48:37" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "2487:15:37", + "nodeType": "YulIdentifier", + "src": "2487:15:37" + }, + "nativeSrc": "2487:65:37", + "nodeType": "YulFunctionCall", + "src": "2487:65:37" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "2478:5:37", + "nodeType": "YulIdentifier", + "src": "2478:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2568:5:37", + "nodeType": "YulIdentifier", + "src": "2568:5:37" + }, + { + "name": "length", + "nativeSrc": "2575:6:37", + "nodeType": "YulIdentifier", + "src": "2575:6:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2561:6:37", + "nodeType": "YulIdentifier", + "src": "2561:6:37" + }, + "nativeSrc": "2561:21:37", + "nodeType": "YulFunctionCall", + "src": "2561:21:37" + }, + "nativeSrc": "2561:21:37", + "nodeType": "YulExpressionStatement", + "src": "2561:21:37" + }, + { + "nativeSrc": "2591:27:37", + "nodeType": "YulVariableDeclaration", + "src": "2591:27:37", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2606:5:37", + "nodeType": "YulIdentifier", + "src": "2606:5:37" + }, + { + "kind": "number", + "nativeSrc": "2613:4:37", + "nodeType": "YulLiteral", + "src": "2613:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2602:3:37", + "nodeType": "YulIdentifier", + "src": "2602:3:37" + }, + "nativeSrc": "2602:16:37", + "nodeType": "YulFunctionCall", + "src": "2602:16:37" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "2595:3:37", + "nodeType": "YulTypedName", + "src": "2595:3:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2656:83:37", + "nodeType": "YulBlock", + "src": "2656:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2658:77:37", + "nodeType": "YulIdentifier", + "src": "2658:77:37" + }, + "nativeSrc": "2658:79:37", + "nodeType": "YulFunctionCall", + "src": "2658:79:37" + }, + "nativeSrc": "2658:79:37", + "nodeType": "YulExpressionStatement", + "src": "2658:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "2637:3:37", + "nodeType": "YulIdentifier", + "src": "2637:3:37" + }, + { + "name": "length", + "nativeSrc": "2642:6:37", + "nodeType": "YulIdentifier", + "src": "2642:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2633:3:37", + "nodeType": "YulIdentifier", + "src": "2633:3:37" + }, + "nativeSrc": "2633:16:37", + "nodeType": "YulFunctionCall", + "src": "2633:16:37" + }, + { + "name": "end", + "nativeSrc": "2651:3:37", + "nodeType": "YulIdentifier", + "src": "2651:3:37" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2630:2:37", + "nodeType": "YulIdentifier", + "src": "2630:2:37" + }, + "nativeSrc": "2630:25:37", + "nodeType": "YulFunctionCall", + "src": "2630:25:37" + }, + "nativeSrc": "2627:112:37", + "nodeType": "YulIf", + "src": "2627:112:37" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2783:3:37", + "nodeType": "YulIdentifier", + "src": "2783:3:37" + }, + { + "name": "dst", + "nativeSrc": "2788:3:37", + "nodeType": "YulIdentifier", + "src": "2788:3:37" + }, + { + "name": "length", + "nativeSrc": "2793:6:37", + "nodeType": "YulIdentifier", + "src": "2793:6:37" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2748:34:37", + "nodeType": "YulIdentifier", + "src": "2748:34:37" + }, + "nativeSrc": "2748:52:37", + "nodeType": "YulFunctionCall", + "src": "2748:52:37" + }, + "nativeSrc": "2748:52:37", + "nodeType": "YulExpressionStatement", + "src": "2748:52:37" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", + "nativeSrc": "2374:432:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "2441:3:37", + "nodeType": "YulTypedName", + "src": "2441:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "2446:6:37", + "nodeType": "YulTypedName", + "src": "2446:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2454:3:37", + "nodeType": "YulTypedName", + "src": "2454:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2462:5:37", + "nodeType": "YulTypedName", + "src": "2462:5:37", + "type": "" + } + ], + "src": "2374:432:37" + }, + { + "body": { + "nativeSrc": "2897:281:37", + "nodeType": "YulBlock", + "src": "2897:281:37", + "statements": [ + { + "body": { + "nativeSrc": "2946:83:37", + "nodeType": "YulBlock", + "src": "2946:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2948:77:37", + "nodeType": "YulIdentifier", + "src": "2948:77:37" + }, + "nativeSrc": "2948:79:37", + "nodeType": "YulFunctionCall", + "src": "2948:79:37" + }, + "nativeSrc": "2948:79:37", + "nodeType": "YulExpressionStatement", + "src": "2948:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2925:6:37", + "nodeType": "YulIdentifier", + "src": "2925:6:37" + }, + { + "kind": "number", + "nativeSrc": "2933:4:37", + "nodeType": "YulLiteral", + "src": "2933:4:37", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2921:3:37", + "nodeType": "YulIdentifier", + "src": "2921:3:37" + }, + "nativeSrc": "2921:17:37", + "nodeType": "YulFunctionCall", + "src": "2921:17:37" + }, + { + "name": "end", + "nativeSrc": "2940:3:37", + "nodeType": "YulIdentifier", + "src": "2940:3:37" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2917:3:37", + "nodeType": "YulIdentifier", + "src": "2917:3:37" + }, + "nativeSrc": "2917:27:37", + "nodeType": "YulFunctionCall", + "src": "2917:27:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2910:6:37", + "nodeType": "YulIdentifier", + "src": "2910:6:37" + }, + "nativeSrc": "2910:35:37", + "nodeType": "YulFunctionCall", + "src": "2910:35:37" + }, + "nativeSrc": "2907:122:37", + "nodeType": "YulIf", + "src": "2907:122:37" + }, + { + "nativeSrc": "3038:27:37", + "nodeType": "YulVariableDeclaration", + "src": "3038:27:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3058:6:37", + "nodeType": "YulIdentifier", + "src": "3058:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3052:5:37", + "nodeType": "YulIdentifier", + "src": "3052:5:37" + }, + "nativeSrc": "3052:13:37", + "nodeType": "YulFunctionCall", + "src": "3052:13:37" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "3042:6:37", + "nodeType": "YulTypedName", + "src": "3042:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3074:98:37", + "nodeType": "YulAssignment", + "src": "3074:98:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3145:6:37", + "nodeType": "YulIdentifier", + "src": "3145:6:37" + }, + { + "kind": "number", + "nativeSrc": "3153:4:37", + "nodeType": "YulLiteral", + "src": "3153:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3141:3:37", + "nodeType": "YulIdentifier", + "src": "3141:3:37" + }, + "nativeSrc": "3141:17:37", + "nodeType": "YulFunctionCall", + "src": "3141:17:37" + }, + { + "name": "length", + "nativeSrc": "3160:6:37", + "nodeType": "YulIdentifier", + "src": "3160:6:37" + }, + { + "name": "end", + "nativeSrc": "3168:3:37", + "nodeType": "YulIdentifier", + "src": "3168:3:37" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", + "nativeSrc": "3083:57:37", + "nodeType": "YulIdentifier", + "src": "3083:57:37" + }, + "nativeSrc": "3083:89:37", + "nodeType": "YulFunctionCall", + "src": "3083:89:37" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "3074:5:37", + "nodeType": "YulIdentifier", + "src": "3074:5:37" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr_fromMemory", + "nativeSrc": "2825:353:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2875:6:37", + "nodeType": "YulTypedName", + "src": "2875:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2883:3:37", + "nodeType": "YulTypedName", + "src": "2883:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2891:5:37", + "nodeType": "YulTypedName", + "src": "2891:5:37", + "type": "" + } + ], + "src": "2825:353:37" + }, + { + "body": { + "nativeSrc": "3304:714:37", + "nodeType": "YulBlock", + "src": "3304:714:37", + "statements": [ + { + "body": { + "nativeSrc": "3350:83:37", + "nodeType": "YulBlock", + "src": "3350:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3352:77:37", + "nodeType": "YulIdentifier", + "src": "3352:77:37" + }, + "nativeSrc": "3352:79:37", + "nodeType": "YulFunctionCall", + "src": "3352:79:37" + }, + "nativeSrc": "3352:79:37", + "nodeType": "YulExpressionStatement", + "src": "3352:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3325:7:37", + "nodeType": "YulIdentifier", + "src": "3325:7:37" + }, + { + "name": "headStart", + "nativeSrc": "3334:9:37", + "nodeType": "YulIdentifier", + "src": "3334:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3321:3:37", + "nodeType": "YulIdentifier", + "src": "3321:3:37" + }, + "nativeSrc": "3321:23:37", + "nodeType": "YulFunctionCall", + "src": "3321:23:37" + }, + { + "kind": "number", + "nativeSrc": "3346:2:37", + "nodeType": "YulLiteral", + "src": "3346:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3317:3:37", + "nodeType": "YulIdentifier", + "src": "3317:3:37" + }, + "nativeSrc": "3317:32:37", + "nodeType": "YulFunctionCall", + "src": "3317:32:37" + }, + "nativeSrc": "3314:119:37", + "nodeType": "YulIf", + "src": "3314:119:37" + }, + { + "nativeSrc": "3443:128:37", + "nodeType": "YulBlock", + "src": "3443:128:37", + "statements": [ + { + "nativeSrc": "3458:15:37", + "nodeType": "YulVariableDeclaration", + "src": "3458:15:37", + "value": { + "kind": "number", + "nativeSrc": "3472:1:37", + "nodeType": "YulLiteral", + "src": "3472:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3462:6:37", + "nodeType": "YulTypedName", + "src": "3462:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3487:74:37", + "nodeType": "YulAssignment", + "src": "3487:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3533:9:37", + "nodeType": "YulIdentifier", + "src": "3533:9:37" + }, + { + "name": "offset", + "nativeSrc": "3544:6:37", + "nodeType": "YulIdentifier", + "src": "3544:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3529:3:37", + "nodeType": "YulIdentifier", + "src": "3529:3:37" + }, + "nativeSrc": "3529:22:37", + "nodeType": "YulFunctionCall", + "src": "3529:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3553:7:37", + "nodeType": "YulIdentifier", + "src": "3553:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "3497:31:37", + "nodeType": "YulIdentifier", + "src": "3497:31:37" + }, + "nativeSrc": "3497:64:37", + "nodeType": "YulFunctionCall", + "src": "3497:64:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3487:6:37", + "nodeType": "YulIdentifier", + "src": "3487:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "3581:129:37", + "nodeType": "YulBlock", + "src": "3581:129:37", + "statements": [ + { + "nativeSrc": "3596:16:37", + "nodeType": "YulVariableDeclaration", + "src": "3596:16:37", + "value": { + "kind": "number", + "nativeSrc": "3610:2:37", + "nodeType": "YulLiteral", + "src": "3610:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3600:6:37", + "nodeType": "YulTypedName", + "src": "3600:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3626:74:37", + "nodeType": "YulAssignment", + "src": "3626:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3672:9:37", + "nodeType": "YulIdentifier", + "src": "3672:9:37" + }, + { + "name": "offset", + "nativeSrc": "3683:6:37", + "nodeType": "YulIdentifier", + "src": "3683:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3668:3:37", + "nodeType": "YulIdentifier", + "src": "3668:3:37" + }, + "nativeSrc": "3668:22:37", + "nodeType": "YulFunctionCall", + "src": "3668:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3692:7:37", + "nodeType": "YulIdentifier", + "src": "3692:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "3636:31:37", + "nodeType": "YulIdentifier", + "src": "3636:31:37" + }, + "nativeSrc": "3636:64:37", + "nodeType": "YulFunctionCall", + "src": "3636:64:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "3626:6:37", + "nodeType": "YulIdentifier", + "src": "3626:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "3720:291:37", + "nodeType": "YulBlock", + "src": "3720:291:37", + "statements": [ + { + "nativeSrc": "3735:39:37", + "nodeType": "YulVariableDeclaration", + "src": "3735:39:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3759:9:37", + "nodeType": "YulIdentifier", + "src": "3759:9:37" + }, + { + "kind": "number", + "nativeSrc": "3770:2:37", + "nodeType": "YulLiteral", + "src": "3770:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3755:3:37", + "nodeType": "YulIdentifier", + "src": "3755:3:37" + }, + "nativeSrc": "3755:18:37", + "nodeType": "YulFunctionCall", + "src": "3755:18:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3749:5:37", + "nodeType": "YulIdentifier", + "src": "3749:5:37" + }, + "nativeSrc": "3749:25:37", + "nodeType": "YulFunctionCall", + "src": "3749:25:37" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3739:6:37", + "nodeType": "YulTypedName", + "src": "3739:6:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3821:83:37", + "nodeType": "YulBlock", + "src": "3821:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3823:77:37", + "nodeType": "YulIdentifier", + "src": "3823:77:37" + }, + "nativeSrc": "3823:79:37", + "nodeType": "YulFunctionCall", + "src": "3823:79:37" + }, + "nativeSrc": "3823:79:37", + "nodeType": "YulExpressionStatement", + "src": "3823:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3793:6:37", + "nodeType": "YulIdentifier", + "src": "3793:6:37" + }, + { + "kind": "number", + "nativeSrc": "3801:18:37", + "nodeType": "YulLiteral", + "src": "3801:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3790:2:37", + "nodeType": "YulIdentifier", + "src": "3790:2:37" + }, + "nativeSrc": "3790:30:37", + "nodeType": "YulFunctionCall", + "src": "3790:30:37" + }, + "nativeSrc": "3787:117:37", + "nodeType": "YulIf", + "src": "3787:117:37" + }, + { + "nativeSrc": "3918:83:37", + "nodeType": "YulAssignment", + "src": "3918:83:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3973:9:37", + "nodeType": "YulIdentifier", + "src": "3973:9:37" + }, + { + "name": "offset", + "nativeSrc": "3984:6:37", + "nodeType": "YulIdentifier", + "src": "3984:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3969:3:37", + "nodeType": "YulIdentifier", + "src": "3969:3:37" + }, + "nativeSrc": "3969:22:37", + "nodeType": "YulFunctionCall", + "src": "3969:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3993:7:37", + "nodeType": "YulIdentifier", + "src": "3993:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr_fromMemory", + "nativeSrc": "3928:40:37", + "nodeType": "YulIdentifier", + "src": "3928:40:37" + }, + "nativeSrc": "3928:73:37", + "nodeType": "YulFunctionCall", + "src": "3928:73:37" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "3918:6:37", + "nodeType": "YulIdentifier", + "src": "3918:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory", + "nativeSrc": "3184:834:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3258:9:37", + "nodeType": "YulTypedName", + "src": "3258:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3269:7:37", + "nodeType": "YulTypedName", + "src": "3269:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3281:6:37", + "nodeType": "YulTypedName", + "src": "3281:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3289:6:37", + "nodeType": "YulTypedName", + "src": "3289:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "3297:6:37", + "nodeType": "YulTypedName", + "src": "3297:6:37", + "type": "" + } + ], + "src": "3184:834:37" + }, + { + "body": { + "nativeSrc": "4089:53:37", + "nodeType": "YulBlock", + "src": "4089:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4106:3:37", + "nodeType": "YulIdentifier", + "src": "4106:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4129:5:37", + "nodeType": "YulIdentifier", + "src": "4129:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "4111:17:37", + "nodeType": "YulIdentifier", + "src": "4111:17:37" + }, + "nativeSrc": "4111:24:37", + "nodeType": "YulFunctionCall", + "src": "4111:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4099:6:37", + "nodeType": "YulIdentifier", + "src": "4099:6:37" + }, + "nativeSrc": "4099:37:37", + "nodeType": "YulFunctionCall", + "src": "4099:37:37" + }, + "nativeSrc": "4099:37:37", + "nodeType": "YulExpressionStatement", + "src": "4099:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4024:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4077:5:37", + "nodeType": "YulTypedName", + "src": "4077:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4084:3:37", + "nodeType": "YulTypedName", + "src": "4084:3:37", + "type": "" + } + ], + "src": "4024:118:37" + }, + { + "body": { + "nativeSrc": "4246:124:37", + "nodeType": "YulBlock", + "src": "4246:124:37", + "statements": [ + { + "nativeSrc": "4256:26:37", + "nodeType": "YulAssignment", + "src": "4256:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4268:9:37", + "nodeType": "YulIdentifier", + "src": "4268:9:37" + }, + { + "kind": "number", + "nativeSrc": "4279:2:37", + "nodeType": "YulLiteral", + "src": "4279:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4264:3:37", + "nodeType": "YulIdentifier", + "src": "4264:3:37" + }, + "nativeSrc": "4264:18:37", + "nodeType": "YulFunctionCall", + "src": "4264:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4256:4:37", + "nodeType": "YulIdentifier", + "src": "4256:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4336:6:37", + "nodeType": "YulIdentifier", + "src": "4336:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4349:9:37", + "nodeType": "YulIdentifier", + "src": "4349:9:37" + }, + { + "kind": "number", + "nativeSrc": "4360:1:37", + "nodeType": "YulLiteral", + "src": "4360:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4345:3:37", + "nodeType": "YulIdentifier", + "src": "4345:3:37" + }, + "nativeSrc": "4345:17:37", + "nodeType": "YulFunctionCall", + "src": "4345:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4292:43:37", + "nodeType": "YulIdentifier", + "src": "4292:43:37" + }, + "nativeSrc": "4292:71:37", + "nodeType": "YulFunctionCall", + "src": "4292:71:37" + }, + "nativeSrc": "4292:71:37", + "nodeType": "YulExpressionStatement", + "src": "4292:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "4148:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4218:9:37", + "nodeType": "YulTypedName", + "src": "4218:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4230:6:37", + "nodeType": "YulTypedName", + "src": "4230:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4241:4:37", + "nodeType": "YulTypedName", + "src": "4241:4:37", + "type": "" + } + ], + "src": "4148:222:37" + }, + { + "body": { + "nativeSrc": "4502:206:37", + "nodeType": "YulBlock", + "src": "4502:206:37", + "statements": [ + { + "nativeSrc": "4512:26:37", + "nodeType": "YulAssignment", + "src": "4512:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4524:9:37", + "nodeType": "YulIdentifier", + "src": "4524:9:37" + }, + { + "kind": "number", + "nativeSrc": "4535:2:37", + "nodeType": "YulLiteral", + "src": "4535:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4520:3:37", + "nodeType": "YulIdentifier", + "src": "4520:3:37" + }, + "nativeSrc": "4520:18:37", + "nodeType": "YulFunctionCall", + "src": "4520:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4512:4:37", + "nodeType": "YulIdentifier", + "src": "4512:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4592:6:37", + "nodeType": "YulIdentifier", + "src": "4592:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4605:9:37", + "nodeType": "YulIdentifier", + "src": "4605:9:37" + }, + { + "kind": "number", + "nativeSrc": "4616:1:37", + "nodeType": "YulLiteral", + "src": "4616:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4601:3:37", + "nodeType": "YulIdentifier", + "src": "4601:3:37" + }, + "nativeSrc": "4601:17:37", + "nodeType": "YulFunctionCall", + "src": "4601:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4548:43:37", + "nodeType": "YulIdentifier", + "src": "4548:43:37" + }, + "nativeSrc": "4548:71:37", + "nodeType": "YulFunctionCall", + "src": "4548:71:37" + }, + "nativeSrc": "4548:71:37", + "nodeType": "YulExpressionStatement", + "src": "4548:71:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "4673:6:37", + "nodeType": "YulIdentifier", + "src": "4673:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4686:9:37", + "nodeType": "YulIdentifier", + "src": "4686:9:37" + }, + { + "kind": "number", + "nativeSrc": "4697:2:37", + "nodeType": "YulLiteral", + "src": "4697:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4682:3:37", + "nodeType": "YulIdentifier", + "src": "4682:3:37" + }, + "nativeSrc": "4682:18:37", + "nodeType": "YulFunctionCall", + "src": "4682:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4629:43:37", + "nodeType": "YulIdentifier", + "src": "4629:43:37" + }, + "nativeSrc": "4629:72:37", + "nodeType": "YulFunctionCall", + "src": "4629:72:37" + }, + "nativeSrc": "4629:72:37", + "nodeType": "YulExpressionStatement", + "src": "4629:72:37" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nativeSrc": "4376:332:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4466:9:37", + "nodeType": "YulTypedName", + "src": "4466:9:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4478:6:37", + "nodeType": "YulTypedName", + "src": "4478:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4486:6:37", + "nodeType": "YulTypedName", + "src": "4486:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4497:4:37", + "nodeType": "YulTypedName", + "src": "4497:4:37", + "type": "" + } + ], + "src": "4376:332:37" + }, + { + "body": { + "nativeSrc": "4772:40:37", + "nodeType": "YulBlock", + "src": "4772:40:37", + "statements": [ + { + "nativeSrc": "4783:22:37", + "nodeType": "YulAssignment", + "src": "4783:22:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4799:5:37", + "nodeType": "YulIdentifier", + "src": "4799:5:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4793:5:37", + "nodeType": "YulIdentifier", + "src": "4793:5:37" + }, + "nativeSrc": "4793:12:37", + "nodeType": "YulFunctionCall", + "src": "4793:12:37" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "4783:6:37", + "nodeType": "YulIdentifier", + "src": "4783:6:37" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "4714:98:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4755:5:37", + "nodeType": "YulTypedName", + "src": "4755:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "4765:6:37", + "nodeType": "YulTypedName", + "src": "4765:6:37", + "type": "" + } + ], + "src": "4714:98:37" + }, + { + "body": { + "nativeSrc": "4931:34:37", + "nodeType": "YulBlock", + "src": "4931:34:37", + "statements": [ + { + "nativeSrc": "4941:18:37", + "nodeType": "YulAssignment", + "src": "4941:18:37", + "value": { + "name": "pos", + "nativeSrc": "4956:3:37", + "nodeType": "YulIdentifier", + "src": "4956:3:37" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "4941:11:37", + "nodeType": "YulIdentifier", + "src": "4941:11:37" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "4818:147:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "4903:3:37", + "nodeType": "YulTypedName", + "src": "4903:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "4908:6:37", + "nodeType": "YulTypedName", + "src": "4908:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "4919:11:37", + "nodeType": "YulTypedName", + "src": "4919:11:37", + "type": "" + } + ], + "src": "4818:147:37" + }, + { + "body": { + "nativeSrc": "5079:278:37", + "nodeType": "YulBlock", + "src": "5079:278:37", + "statements": [ + { + "nativeSrc": "5089:52:37", + "nodeType": "YulVariableDeclaration", + "src": "5089:52:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5135:5:37", + "nodeType": "YulIdentifier", + "src": "5135:5:37" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "5103:31:37", + "nodeType": "YulIdentifier", + "src": "5103:31:37" + }, + "nativeSrc": "5103:38:37", + "nodeType": "YulFunctionCall", + "src": "5103:38:37" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "5093:6:37", + "nodeType": "YulTypedName", + "src": "5093:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "5150:95:37", + "nodeType": "YulAssignment", + "src": "5150:95:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5233:3:37", + "nodeType": "YulIdentifier", + "src": "5233:3:37" + }, + { + "name": "length", + "nativeSrc": "5238:6:37", + "nodeType": "YulIdentifier", + "src": "5238:6:37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "5157:75:37", + "nodeType": "YulIdentifier", + "src": "5157:75:37" + }, + "nativeSrc": "5157:88:37", + "nodeType": "YulFunctionCall", + "src": "5157:88:37" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "5150:3:37", + "nodeType": "YulIdentifier", + "src": "5150:3:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5293:5:37", + "nodeType": "YulIdentifier", + "src": "5293:5:37" + }, + { + "kind": "number", + "nativeSrc": "5300:4:37", + "nodeType": "YulLiteral", + "src": "5300:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5289:3:37", + "nodeType": "YulIdentifier", + "src": "5289:3:37" + }, + "nativeSrc": "5289:16:37", + "nodeType": "YulFunctionCall", + "src": "5289:16:37" + }, + { + "name": "pos", + "nativeSrc": "5307:3:37", + "nodeType": "YulIdentifier", + "src": "5307:3:37" + }, + { + "name": "length", + "nativeSrc": "5312:6:37", + "nodeType": "YulIdentifier", + "src": "5312:6:37" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "5254:34:37", + "nodeType": "YulIdentifier", + "src": "5254:34:37" + }, + "nativeSrc": "5254:65:37", + "nodeType": "YulFunctionCall", + "src": "5254:65:37" + }, + "nativeSrc": "5254:65:37", + "nodeType": "YulExpressionStatement", + "src": "5254:65:37" + }, + { + "nativeSrc": "5328:23:37", + "nodeType": "YulAssignment", + "src": "5328:23:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5339:3:37", + "nodeType": "YulIdentifier", + "src": "5339:3:37" + }, + { + "name": "length", + "nativeSrc": "5344:6:37", + "nodeType": "YulIdentifier", + "src": "5344:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5335:3:37", + "nodeType": "YulIdentifier", + "src": "5335:3:37" + }, + "nativeSrc": "5335:16:37", + "nodeType": "YulFunctionCall", + "src": "5335:16:37" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "5328:3:37", + "nodeType": "YulIdentifier", + "src": "5328:3:37" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "4971:386:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5060:5:37", + "nodeType": "YulTypedName", + "src": "5060:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5067:3:37", + "nodeType": "YulTypedName", + "src": "5067:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "5075:3:37", + "nodeType": "YulTypedName", + "src": "5075:3:37", + "type": "" + } + ], + "src": "4971:386:37" + }, + { + "body": { + "nativeSrc": "5497:137:37", + "nodeType": "YulBlock", + "src": "5497:137:37", + "statements": [ + { + "nativeSrc": "5508:100:37", + "nodeType": "YulAssignment", + "src": "5508:100:37", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5595:6:37", + "nodeType": "YulIdentifier", + "src": "5595:6:37" + }, + { + "name": "pos", + "nativeSrc": "5604:3:37", + "nodeType": "YulIdentifier", + "src": "5604:3:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "5515:79:37", + "nodeType": "YulIdentifier", + "src": "5515:79:37" + }, + "nativeSrc": "5515:93:37", + "nodeType": "YulFunctionCall", + "src": "5515:93:37" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "5508:3:37", + "nodeType": "YulIdentifier", + "src": "5508:3:37" + } + ] + }, + { + "nativeSrc": "5618:10:37", + "nodeType": "YulAssignment", + "src": "5618:10:37", + "value": { + "name": "pos", + "nativeSrc": "5625:3:37", + "nodeType": "YulIdentifier", + "src": "5625:3:37" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "5618:3:37", + "nodeType": "YulIdentifier", + "src": "5618:3:37" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "5363:271:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "5476:3:37", + "nodeType": "YulTypedName", + "src": "5476:3:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5482:6:37", + "nodeType": "YulTypedName", + "src": "5482:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "5493:3:37", + "nodeType": "YulTypedName", + "src": "5493:3:37", + "type": "" + } + ], + "src": "5363:271:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea2646970667358221220822de418beb5a325cfb8f4bb063c678ed495b4367e9e78b179c23a652dfdfe7064736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea2646970667358221220395f28e781612bf5bf29aa036b240c8e269d4b342adf86c7c0946886c542932f64736f6c634300081c0033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1AE5 CODESIZE SUB DUP1 PUSH2 0x1AE5 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0x74F JUMP JUMPDEST DUP3 DUP2 PUSH2 0x37 DUP3 DUP3 PUSH2 0xC4 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP DUP2 PUSH1 0x40 MLOAD PUSH2 0x46 SWAP1 PUSH2 0x56F JUMP JUMPDEST PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH2 0xBC PUSH2 0xB1 PUSH2 0x149 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x153 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP PUSH2 0x86F JUMP JUMPDEST PUSH2 0xD3 DUP3 PUSH2 0x1AB PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x136 JUMPI PUSH2 0x130 DUP3 DUP3 PUSH2 0x27E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x145 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x308 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x182 PUSH2 0x345 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0x191 SWAP3 SWAP2 SWAP1 PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x1A8 DUP2 PUSH2 0x3A2 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x207 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FE SWAP2 SWAP1 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x23A PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x48B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0x858 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2E3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2E8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2FE DUP6 DUP4 DUP4 PUSH2 0x495 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x343 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x379 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 PUSH1 0x0 SHL PUSH2 0x48B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x414 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x62E77BA200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x447 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 PUSH1 0x0 SHL PUSH2 0x48B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x4B0 JUMPI PUSH2 0x4AB DUP3 PUSH2 0x52A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x522 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x4D8 JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x51A JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x511 SWAP2 SWAP1 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x523 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x53D JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1425EA4200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA2B DUP1 PUSH2 0x10BA DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP3 PUSH2 0x590 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5CB DUP2 PUSH2 0x5B0 JUMP JUMPDEST DUP2 EQ PUSH2 0x5D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x5E8 DUP2 PUSH2 0x5C2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x641 DUP3 PUSH2 0x5F8 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x660 JUMPI PUSH2 0x65F PUSH2 0x609 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x673 PUSH2 0x57C JUMP JUMPDEST SWAP1 POP PUSH2 0x67F DUP3 DUP3 PUSH2 0x638 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x69F JUMPI PUSH2 0x69E PUSH2 0x609 JUMP JUMPDEST JUMPDEST PUSH2 0x6A8 DUP3 PUSH2 0x5F8 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B8 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F2 PUSH2 0x6ED DUP5 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x669 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x70E JUMPI PUSH2 0x70D PUSH2 0x5F3 JUMP JUMPDEST JUMPDEST PUSH2 0x719 DUP5 DUP3 DUP6 PUSH2 0x6B5 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x5EE JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x746 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x6DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x768 JUMPI PUSH2 0x767 PUSH2 0x586 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x776 DUP7 DUP3 DUP8 ADD PUSH2 0x5D9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x787 DUP7 DUP3 DUP8 ADD PUSH2 0x5D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7A8 JUMPI PUSH2 0x7A7 PUSH2 0x58B JUMP JUMPDEST JUMPDEST PUSH2 0x7B4 DUP7 DUP3 DUP8 ADD PUSH2 0x721 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x7C7 DUP2 PUSH2 0x5B0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x7E2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7BE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x7FD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x80A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x7BE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x832 DUP3 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x83C DUP2 DUP6 PUSH2 0x81C JUMP JUMPDEST SWAP4 POP PUSH2 0x84C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B5 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x864 DUP3 DUP5 PUSH2 0x827 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x830 PUSH2 0x88A PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x106 ADD MSTORE PUSH2 0x830 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0xC PUSH2 0xE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16 PUSH2 0x102 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF7 JUMPI PUSH4 0x4F1EF286 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x0 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0xEA JUMPI PUSH1 0x40 MLOAD PUSH32 0xD2B576EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF2 PUSH2 0x12A JUMP JUMPDEST PUSH2 0x100 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x160 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLDATASIZE PUSH1 0x4 SWAP1 DUP1 SWAP3 PUSH2 0x141 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4F1 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0x6DA JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x15C DUP3 DUP3 PUSH2 0x172 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x170 PUSH2 0x16B PUSH2 0x1E5 JUMP JUMPDEST PUSH2 0x1F4 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x17B DUP3 PUSH2 0x21A JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x1D8 JUMPI PUSH2 0x1D2 DUP3 DUP3 PUSH2 0x2E7 JUMP JUMPDEST POP PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x36B JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF PUSH2 0x3A8 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x215 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x276 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x2A3 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x311 SWAP2 SWAP1 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x351 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x361 DUP6 DUP4 DUP4 PUSH2 0x409 JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x3A6 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D6 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x41E JUMPI PUSH2 0x419 DUP3 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x490 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x446 JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x488 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x47F SWAP2 SWAP1 PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x491 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x4AB JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1425EA4200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x505 JUMPI PUSH2 0x504 PUSH2 0x4E7 JUMP JUMPDEST JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x516 JUMPI PUSH2 0x515 PUSH2 0x4EC JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 MUL DUP4 ADD SWAP2 POP DUP5 DUP7 SUB SWAP1 POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x561 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x571 DUP2 PUSH2 0x556 JUMP JUMPDEST DUP2 EQ PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x58E DUP2 PUSH2 0x568 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x5E7 DUP3 PUSH2 0x59E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x606 JUMPI PUSH2 0x605 PUSH2 0x5AF JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x619 PUSH2 0x4DD JUMP JUMPDEST SWAP1 POP PUSH2 0x625 DUP3 DUP3 PUSH2 0x5DE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x645 JUMPI PUSH2 0x644 PUSH2 0x5AF JUMP JUMPDEST JUMPDEST PUSH2 0x64E DUP3 PUSH2 0x59E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67D PUSH2 0x678 DUP5 PUSH2 0x62A JUMP JUMPDEST PUSH2 0x60F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x699 JUMPI PUSH2 0x698 PUSH2 0x599 JUMP JUMPDEST JUMPDEST PUSH2 0x6A4 DUP5 DUP3 DUP6 PUSH2 0x65B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x6C1 JUMPI PUSH2 0x6C0 PUSH2 0x594 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x6D1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x66A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6F1 JUMPI PUSH2 0x6F0 PUSH2 0x52C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x6FF DUP6 DUP3 DUP7 ADD PUSH2 0x57F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x720 JUMPI PUSH2 0x71F PUSH2 0x531 JUMP JUMPDEST JUMPDEST PUSH2 0x72C DUP6 DUP3 DUP7 ADD PUSH2 0x6AC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x741 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x751 DUP2 PUSH2 0x736 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x76C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x748 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7A6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x78B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BD DUP3 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x7C7 DUP2 DUP6 PUSH2 0x77D JUMP JUMPDEST SWAP4 POP PUSH2 0x7D7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x788 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EF DUP3 DUP5 PUSH2 0x7B2 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP3 0x2D 0xE4 XOR 0xBE 0xB5 LOG3 0x25 0xCF 0xB8 DELEGATECALL 0xBB MOD EXTCODECOPY PUSH8 0x8ED495B4367E9E78 0xB1 PUSH26 0xC23A652DFDFE7064736F6C634300081C00336080604052348015 PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xA2B CODESIZE SUB DUP1 PUSH2 0xA2B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x1E2 JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C SWAP2 SWAP1 PUSH2 0x21E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB4 DUP2 PUSH2 0xBB PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x239 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AF DUP3 PUSH2 0x184 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BF DUP2 PUSH2 0x1A4 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1DC DUP2 PUSH2 0x1B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x17F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x206 DUP5 DUP3 DUP6 ADD PUSH2 0x1CD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x218 DUP2 PUSH2 0x1A4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x233 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x20F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7E3 DUP1 PUSH2 0x248 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x91 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xD8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x101 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x115 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA6 SWAP2 SWAP1 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x13E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFA SWAP2 SWAP1 PUSH2 0x6FB JUMP JUMPDEST PUSH2 0x1F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x0 PUSH2 0x2FF JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x278 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4F1EF286 CALLVALUE DUP5 DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x182 SWAP3 SWAP2 SWAP1 PUSH2 0x77D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x352E302E30000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x1FA PUSH2 0x278 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x275 DUP2 PUSH2 0x2FF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x280 PUSH2 0x3C3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x29E PUSH2 0x115 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2FD JUMPI PUSH2 0x2C1 PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F6 DUP3 PUSH2 0x3CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x406 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x421 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3FD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x446 DUP3 PUSH2 0x3EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x456 DUP2 PUSH2 0x43B JUMP JUMPDEST DUP2 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x473 DUP2 PUSH2 0x44D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP2 EQ PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49F DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4F8 DUP3 PUSH2 0x4AF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x517 JUMPI PUSH2 0x516 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52A PUSH2 0x427 JUMP JUMPDEST SWAP1 POP PUSH2 0x536 DUP3 DUP3 PUSH2 0x4EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x556 JUMPI PUSH2 0x555 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST PUSH2 0x55F DUP3 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58E PUSH2 0x589 DUP5 PUSH2 0x53B JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5AA JUMPI PUSH2 0x5A9 PUSH2 0x4AA JUMP JUMPDEST JUMPDEST PUSH2 0x5B5 DUP5 DUP3 DUP6 PUSH2 0x56C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5D2 JUMPI PUSH2 0x5D1 PUSH2 0x4A5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5E2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x57B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x604 JUMPI PUSH2 0x603 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x612 DUP7 DUP3 DUP8 ADD PUSH2 0x464 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x623 DUP7 DUP3 DUP8 ADD PUSH2 0x490 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x644 JUMPI PUSH2 0x643 PUSH2 0x436 JUMP JUMPDEST JUMPDEST PUSH2 0x650 DUP7 DUP3 DUP8 ADD PUSH2 0x5BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x694 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x679 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AB DUP3 PUSH2 0x65A JUMP JUMPDEST PUSH2 0x6B5 DUP2 DUP6 PUSH2 0x665 JUMP JUMPDEST SWAP4 POP PUSH2 0x6C5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x6CE DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F3 DUP2 DUP5 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x711 JUMPI PUSH2 0x710 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x71F DUP5 DUP3 DUP6 ADD PUSH2 0x490 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74F DUP3 PUSH2 0x728 JUMP JUMPDEST PUSH2 0x759 DUP2 DUP6 PUSH2 0x733 JUMP JUMPDEST SWAP4 POP PUSH2 0x769 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x772 DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x792 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3FD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x7A4 DUP2 DUP5 PUSH2 0x744 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY PUSH0 0x28 0xE7 DUP2 PUSH2 0x2BF5 0xBF 0x29 0xAA SUB PUSH12 0x240C8E269D4B342ADF86C7C0 SWAP5 PUSH9 0x86C542932F64736F6C PUSH4 0x4300081C STOP CALLER ", + "sourceMap": "4145:2226:18:-:0;;;4988:296;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5079:6;5087:5;1154:52:13;1184:14;1200:5;1154:29;;;:52;;:::i;:::-;1080:133;;5136:12:18::1;5121:28;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;5104:46;;;;;;;;::::0;::::1;5238:39;5263:13;:11;;;:13;;:::i;:::-;5238:24;;;:39;;:::i;:::-;4988:296:::0;;;4145:2226;;2779:335:14;2870:37;2889:17;2870:18;;;:37;;:::i;:::-;2931:17;2922:27;;;;;;;;;;;;2978:1;2964:4;:11;:15;2960:148;;;2995:53;3024:17;3043:4;2995:28;;;:53;;:::i;:::-;;2960:148;;;3079:18;:16;;;:18;;:::i;:::-;2960:148;2779:335;;:::o;5351:88:18:-;5400:7;5426:6;;5419:13;;5351:88;:::o;4331:133:14:-;4394:34;4407:10;:8;;;:10;;:::i;:::-;4419:8;4394:34;;;;;;;:::i;:::-;;;;;;;;4438:19;4448:8;4438:9;;;:19;;:::i;:::-;4331:133;:::o;2186:281::-;2296:1;2263:17;:29;;;:34;2259:119;;2349:17;2320:47;;;;;;;;;;;:::i;:::-;;;;;;;;2259:119;2443:17;2387:47;1327:66;2414:19;;2387:26;;;:47;;:::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;2186:281;:::o;4106:253:19:-;4189:12;4214;4228:23;4255:6;:19;;4275:4;4255:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4213:67;;;;4297:55;4324:6;4332:7;4341:10;4297:26;;;:55;;:::i;:::-;4290:62;;;;4106:253;;;;:::o;6598:122:14:-;6660:1;6648:9;:13;6644:70;;;6684:19;;;;;;;;;;;;;;6644:70;6598:122::o;3792:120::-;3835:7;3861:38;3374:66;3888:10;;3861:26;;;:38;;:::i;:::-;:44;;;;;;;;;;;;3854:51;;3792:120;:::o;3994:217::-;4073:1;4053:22;;:8;:22;;;4049:91;;4126:1;4098:31;;;;;;;;;;;:::i;:::-;;;;;;;;4049:91;4196:8;4149:38;3374:66;4176:10;;4149:26;;;:38;;:::i;:::-;:44;;;:55;;;;;;;;;;;;;;;;;;3994:217;:::o;1684:190:22:-;1745:21;1854:4;1844:14;;1684:190;;;:::o;4625:582:19:-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;;;:19;;:::i;:::-;4793:408;;;5066:1;5045:10;:17;:22;:49;;;;;5093:1;5071:6;:18;;;:23;5045:49;5041:119;;;5138:6;5121:24;;;;;;;;;;;:::i;:::-;;;;;;;;5041:119;5180:10;5173:17;;;;4793:408;4625:582;;;;;;:::o;5743:516::-;5894:1;5874:10;:17;:21;5870:383;;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;;;;;;;;;;;;;4145:2226:18;;;;;;;;:::o;7:75:37:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:117::-;954:1;951;944:12;968:117;1077:1;1074;1067:12;1091:102;1132:6;1183:2;1179:7;1174:2;1167:5;1163:14;1159:28;1149:38;;1091:102;;;:::o;1199:180::-;1247:77;1244:1;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;1468:27;1490:4;1468:27;:::i;:::-;1460:6;1456:40;1598:6;1586:10;1583:22;1562:18;1550:10;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1541:88;1649:10;1645:2;1638:22;1428:238;1385:281;;:::o;1672:129::-;1706:6;1733:20;;:::i;:::-;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;1958:18;1950:6;1947:30;1944:56;;;1980:18;;:::i;:::-;1944:56;2018:29;2040:6;2018:29;:::i;:::-;2010:37;;2102:4;2096;2092:15;2084:23;;1807:307;;;:::o;2120:248::-;2202:1;2212:113;2226:6;2223:1;2220:13;2212:113;;;2311:1;2306:3;2302:11;2296:18;2292:1;2287:3;2283:11;2276:39;2248:2;2245:1;2241:10;2236:15;;2212:113;;;2359:1;2350:6;2345:3;2341:16;2334:27;2182:186;2120:248;;;:::o;2374:432::-;2462:5;2487:65;2503:48;2544:6;2503:48;:::i;:::-;2487:65;:::i;:::-;2478:74;;2575:6;2568:5;2561:21;2613:4;2606:5;2602:16;2651:3;2642:6;2637:3;2633:16;2630:25;2627:112;;;2658:79;;:::i;:::-;2627:112;2748:52;2793:6;2788:3;2783;2748:52;:::i;:::-;2468:338;2374:432;;;;;:::o;2825:353::-;2891:5;2940:3;2933:4;2925:6;2921:17;2917:27;2907:122;;2948:79;;:::i;:::-;2907:122;3058:6;3052:13;3083:89;3168:3;3160:6;3153:4;3145:6;3141:17;3083:89;:::i;:::-;3074:98;;2897:281;2825:353;;;;:::o;3184:834::-;3281:6;3289;3297;3346:2;3334:9;3325:7;3321:23;3317:32;3314:119;;;3352:79;;:::i;:::-;3314:119;3472:1;3497:64;3553:7;3544:6;3533:9;3529:22;3497:64;:::i;:::-;3487:74;;3443:128;3610:2;3636:64;3692:7;3683:6;3672:9;3668:22;3636:64;:::i;:::-;3626:74;;3581:129;3770:2;3759:9;3755:18;3749:25;3801:18;3793:6;3790:30;3787:117;;;3823:79;;:::i;:::-;3787:117;3928:73;3993:7;3984:6;3973:9;3969:22;3928:73;:::i;:::-;3918:83;;3720:291;3184:834;;;;;:::o;4024:118::-;4111:24;4129:5;4111:24;:::i;:::-;4106:3;4099:37;4024:118;;:::o;4148:222::-;4241:4;4279:2;4268:9;4264:18;4256:26;;4292:71;4360:1;4349:9;4345:17;4336:6;4292:71;:::i;:::-;4148:222;;;;:::o;4376:332::-;4497:4;4535:2;4524:9;4520:18;4512:26;;4548:71;4616:1;4605:9;4601:17;4592:6;4548:71;:::i;:::-;4629:72;4697:2;4686:9;4682:18;4673:6;4629:72;:::i;:::-;4376:332;;;;;:::o;4714:98::-;4765:6;4799:5;4793:12;4783:22;;4714:98;;;:::o;4818:147::-;4919:11;4956:3;4941:18;;4818:147;;;;:::o;4971:386::-;5075:3;5103:38;5135:5;5103:38;:::i;:::-;5157:88;5238:6;5233:3;5157:88;:::i;:::-;5150:95;;5254:65;5312:6;5307:3;5300:4;5293:5;5289:16;5254:65;:::i;:::-;5344:6;5339:3;5335:16;5328:23;;5079:278;4971:386;;;;:::o;5363:271::-;5493:3;5515:93;5604:3;5595:6;5515:93;:::i;:::-;5508:100;;5625:3;5618:10;;5363:271;;;;:::o;4145:2226:18:-;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_2942": { + "entryPoint": null, + "id": 2942, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkNonPayable_2906": { + "entryPoint": 875, + "id": 2906, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_delegate_2918": { + "entryPoint": 500, + "id": 2918, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_dispatchUpgradeToAndCall_3135": { + "entryPoint": 298, + "id": 3135, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_fallback_2934": { + "entryPoint": 352, + "id": 2934, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_fallback_3106": { + "entryPoint": 14, + "id": 3106, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_implementation_2603": { + "entryPoint": 485, + "id": 2603, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_proxyAdmin_3072": { + "entryPoint": 258, + "id": 3072, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_revert_3388": { + "entryPoint": 1176, + "id": 3388, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setImplementation_2692": { + "entryPoint": 538, + "id": 2692, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@functionDelegateCall_3308": { + "entryPoint": 743, + "id": 3308, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getAddressSlot_3568": { + "entryPoint": 1023, + "id": 3568, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getImplementation_2665": { + "entryPoint": 936, + "id": 2665, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@upgradeToAndCall_2726": { + "entryPoint": 370, + "id": 2726, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@verifyCallResultFromTarget_3348": { + "entryPoint": 1033, + "id": 3348, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 1642, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address_payable": { + "entryPoint": 1407, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 1708, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_payablet_bytes_memory_ptr": { + "entryPoint": 1754, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1864, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 1970, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 2019, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1879, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 1551, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 1245, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 1578, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 1906, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 1917, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "calldata_array_index_range_access_t_bytes_calldata_ptr": { + "entryPoint": 1265, + "id": null, + "parameterSlots": 4, + "returnSlots": 2 + }, + "cleanup_t_address": { + "entryPoint": 1846, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_address_payable": { + "entryPoint": 1366, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1334, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 1627, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 1928, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "finalize_allocation": { + "entryPoint": 1502, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 1455, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 1428, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c": { + "entryPoint": 1260, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a": { + "entryPoint": 1255, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 1433, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 1329, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 1324, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 1438, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address_payable": { + "entryPoint": 1384, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:6122:37", + "nodeType": "YulBlock", + "src": "0:6122:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "460:343:37", + "nodeType": "YulBlock", + "src": "460:343:37", + "statements": [ + { + "body": { + "nativeSrc": "498:83:37", + "nodeType": "YulBlock", + "src": "498:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a", + "nativeSrc": "500:77:37", + "nodeType": "YulIdentifier", + "src": "500:77:37" + }, + "nativeSrc": "500:79:37", + "nodeType": "YulFunctionCall", + "src": "500:79:37" + }, + "nativeSrc": "500:79:37", + "nodeType": "YulExpressionStatement", + "src": "500:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "476:10:37", + "nodeType": "YulIdentifier", + "src": "476:10:37" + }, + { + "name": "endIndex", + "nativeSrc": "488:8:37", + "nodeType": "YulIdentifier", + "src": "488:8:37" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "473:2:37", + "nodeType": "YulIdentifier", + "src": "473:2:37" + }, + "nativeSrc": "473:24:37", + "nodeType": "YulFunctionCall", + "src": "473:24:37" + }, + "nativeSrc": "470:111:37", + "nodeType": "YulIf", + "src": "470:111:37" + }, + { + "body": { + "nativeSrc": "614:83:37", + "nodeType": "YulBlock", + "src": "614:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c", + "nativeSrc": "616:77:37", + "nodeType": "YulIdentifier", + "src": "616:77:37" + }, + "nativeSrc": "616:79:37", + "nodeType": "YulFunctionCall", + "src": "616:79:37" + }, + "nativeSrc": "616:79:37", + "nodeType": "YulExpressionStatement", + "src": "616:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "endIndex", + "nativeSrc": "596:8:37", + "nodeType": "YulIdentifier", + "src": "596:8:37" + }, + { + "name": "length", + "nativeSrc": "606:6:37", + "nodeType": "YulIdentifier", + "src": "606:6:37" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "593:2:37", + "nodeType": "YulIdentifier", + "src": "593:2:37" + }, + "nativeSrc": "593:20:37", + "nodeType": "YulFunctionCall", + "src": "593:20:37" + }, + "nativeSrc": "590:107:37", + "nodeType": "YulIf", + "src": "590:107:37" + }, + { + "nativeSrc": "706:44:37", + "nodeType": "YulAssignment", + "src": "706:44:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "723:6:37", + "nodeType": "YulIdentifier", + "src": "723:6:37" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "735:10:37", + "nodeType": "YulIdentifier", + "src": "735:10:37" + }, + { + "kind": "number", + "nativeSrc": "747:1:37", + "nodeType": "YulLiteral", + "src": "747:1:37", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "731:3:37", + "nodeType": "YulIdentifier", + "src": "731:3:37" + }, + "nativeSrc": "731:18:37", + "nodeType": "YulFunctionCall", + "src": "731:18:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "719:3:37", + "nodeType": "YulIdentifier", + "src": "719:3:37" + }, + "nativeSrc": "719:31:37", + "nodeType": "YulFunctionCall", + "src": "719:31:37" + }, + "variableNames": [ + { + "name": "offsetOut", + "nativeSrc": "706:9:37", + "nodeType": "YulIdentifier", + "src": "706:9:37" + } + ] + }, + { + "nativeSrc": "759:38:37", + "nodeType": "YulAssignment", + "src": "759:38:37", + "value": { + "arguments": [ + { + "name": "endIndex", + "nativeSrc": "776:8:37", + "nodeType": "YulIdentifier", + "src": "776:8:37" + }, + { + "name": "startIndex", + "nativeSrc": "786:10:37", + "nodeType": "YulIdentifier", + "src": "786:10:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "772:3:37", + "nodeType": "YulIdentifier", + "src": "772:3:37" + }, + "nativeSrc": "772:25:37", + "nodeType": "YulFunctionCall", + "src": "772:25:37" + }, + "variableNames": [ + { + "name": "lengthOut", + "nativeSrc": "759:9:37", + "nodeType": "YulIdentifier", + "src": "759:9:37" + } + ] + } + ] + }, + "name": "calldata_array_index_range_access_t_bytes_calldata_ptr", + "nativeSrc": "334:469:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "398:6:37", + "nodeType": "YulTypedName", + "src": "398:6:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "406:6:37", + "nodeType": "YulTypedName", + "src": "406:6:37", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "414:10:37", + "nodeType": "YulTypedName", + "src": "414:10:37", + "type": "" + }, + { + "name": "endIndex", + "nativeSrc": "426:8:37", + "nodeType": "YulTypedName", + "src": "426:8:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "offsetOut", + "nativeSrc": "439:9:37", + "nodeType": "YulTypedName", + "src": "439:9:37", + "type": "" + }, + { + "name": "lengthOut", + "nativeSrc": "450:9:37", + "nodeType": "YulTypedName", + "src": "450:9:37", + "type": "" + } + ], + "src": "334:469:37" + }, + { + "body": { + "nativeSrc": "898:28:37", + "nodeType": "YulBlock", + "src": "898:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "915:1:37", + "nodeType": "YulLiteral", + "src": "915:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "918:1:37", + "nodeType": "YulLiteral", + "src": "918:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "908:6:37", + "nodeType": "YulIdentifier", + "src": "908:6:37" + }, + "nativeSrc": "908:12:37", + "nodeType": "YulFunctionCall", + "src": "908:12:37" + }, + "nativeSrc": "908:12:37", + "nodeType": "YulExpressionStatement", + "src": "908:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "809:117:37", + "nodeType": "YulFunctionDefinition", + "src": "809:117:37" + }, + { + "body": { + "nativeSrc": "1021:28:37", + "nodeType": "YulBlock", + "src": "1021:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1038:1:37", + "nodeType": "YulLiteral", + "src": "1038:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1041:1:37", + "nodeType": "YulLiteral", + "src": "1041:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1031:6:37", + "nodeType": "YulIdentifier", + "src": "1031:6:37" + }, + "nativeSrc": "1031:12:37", + "nodeType": "YulFunctionCall", + "src": "1031:12:37" + }, + "nativeSrc": "1031:12:37", + "nodeType": "YulExpressionStatement", + "src": "1031:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "932:117:37", + "nodeType": "YulFunctionDefinition", + "src": "932:117:37" + }, + { + "body": { + "nativeSrc": "1100:81:37", + "nodeType": "YulBlock", + "src": "1100:81:37", + "statements": [ + { + "nativeSrc": "1110:65:37", + "nodeType": "YulAssignment", + "src": "1110:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1125:5:37", + "nodeType": "YulIdentifier", + "src": "1125:5:37" + }, + { + "kind": "number", + "nativeSrc": "1132:42:37", + "nodeType": "YulLiteral", + "src": "1132:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1121:3:37", + "nodeType": "YulIdentifier", + "src": "1121:3:37" + }, + "nativeSrc": "1121:54:37", + "nodeType": "YulFunctionCall", + "src": "1121:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1110:7:37", + "nodeType": "YulIdentifier", + "src": "1110:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "1055:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1082:5:37", + "nodeType": "YulTypedName", + "src": "1082:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1092:7:37", + "nodeType": "YulTypedName", + "src": "1092:7:37", + "type": "" + } + ], + "src": "1055:126:37" + }, + { + "body": { + "nativeSrc": "1240:51:37", + "nodeType": "YulBlock", + "src": "1240:51:37", + "statements": [ + { + "nativeSrc": "1250:35:37", + "nodeType": "YulAssignment", + "src": "1250:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1279:5:37", + "nodeType": "YulIdentifier", + "src": "1279:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "1261:17:37", + "nodeType": "YulIdentifier", + "src": "1261:17:37" + }, + "nativeSrc": "1261:24:37", + "nodeType": "YulFunctionCall", + "src": "1261:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1250:7:37", + "nodeType": "YulIdentifier", + "src": "1250:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address_payable", + "nativeSrc": "1187:104:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1222:5:37", + "nodeType": "YulTypedName", + "src": "1222:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1232:7:37", + "nodeType": "YulTypedName", + "src": "1232:7:37", + "type": "" + } + ], + "src": "1187:104:37" + }, + { + "body": { + "nativeSrc": "1348:87:37", + "nodeType": "YulBlock", + "src": "1348:87:37", + "statements": [ + { + "body": { + "nativeSrc": "1413:16:37", + "nodeType": "YulBlock", + "src": "1413:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1422:1:37", + "nodeType": "YulLiteral", + "src": "1422:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1425:1:37", + "nodeType": "YulLiteral", + "src": "1425:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1415:6:37", + "nodeType": "YulIdentifier", + "src": "1415:6:37" + }, + "nativeSrc": "1415:12:37", + "nodeType": "YulFunctionCall", + "src": "1415:12:37" + }, + "nativeSrc": "1415:12:37", + "nodeType": "YulExpressionStatement", + "src": "1415:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1371:5:37", + "nodeType": "YulIdentifier", + "src": "1371:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1404:5:37", + "nodeType": "YulIdentifier", + "src": "1404:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address_payable", + "nativeSrc": "1378:25:37", + "nodeType": "YulIdentifier", + "src": "1378:25:37" + }, + "nativeSrc": "1378:32:37", + "nodeType": "YulFunctionCall", + "src": "1378:32:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1368:2:37", + "nodeType": "YulIdentifier", + "src": "1368:2:37" + }, + "nativeSrc": "1368:43:37", + "nodeType": "YulFunctionCall", + "src": "1368:43:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1361:6:37", + "nodeType": "YulIdentifier", + "src": "1361:6:37" + }, + "nativeSrc": "1361:51:37", + "nodeType": "YulFunctionCall", + "src": "1361:51:37" + }, + "nativeSrc": "1358:71:37", + "nodeType": "YulIf", + "src": "1358:71:37" + } + ] + }, + "name": "validator_revert_t_address_payable", + "nativeSrc": "1297:138:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1341:5:37", + "nodeType": "YulTypedName", + "src": "1341:5:37", + "type": "" + } + ], + "src": "1297:138:37" + }, + { + "body": { + "nativeSrc": "1501:95:37", + "nodeType": "YulBlock", + "src": "1501:95:37", + "statements": [ + { + "nativeSrc": "1511:29:37", + "nodeType": "YulAssignment", + "src": "1511:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1533:6:37", + "nodeType": "YulIdentifier", + "src": "1533:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1520:12:37", + "nodeType": "YulIdentifier", + "src": "1520:12:37" + }, + "nativeSrc": "1520:20:37", + "nodeType": "YulFunctionCall", + "src": "1520:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1511:5:37", + "nodeType": "YulIdentifier", + "src": "1511:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1584:5:37", + "nodeType": "YulIdentifier", + "src": "1584:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address_payable", + "nativeSrc": "1549:34:37", + "nodeType": "YulIdentifier", + "src": "1549:34:37" + }, + "nativeSrc": "1549:41:37", + "nodeType": "YulFunctionCall", + "src": "1549:41:37" + }, + "nativeSrc": "1549:41:37", + "nodeType": "YulExpressionStatement", + "src": "1549:41:37" + } + ] + }, + "name": "abi_decode_t_address_payable", + "nativeSrc": "1441:155:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1479:6:37", + "nodeType": "YulTypedName", + "src": "1479:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1487:3:37", + "nodeType": "YulTypedName", + "src": "1487:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1495:5:37", + "nodeType": "YulTypedName", + "src": "1495:5:37", + "type": "" + } + ], + "src": "1441:155:37" + }, + { + "body": { + "nativeSrc": "1691:28:37", + "nodeType": "YulBlock", + "src": "1691:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1708:1:37", + "nodeType": "YulLiteral", + "src": "1708:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1711:1:37", + "nodeType": "YulLiteral", + "src": "1711:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1701:6:37", + "nodeType": "YulIdentifier", + "src": "1701:6:37" + }, + "nativeSrc": "1701:12:37", + "nodeType": "YulFunctionCall", + "src": "1701:12:37" + }, + "nativeSrc": "1701:12:37", + "nodeType": "YulExpressionStatement", + "src": "1701:12:37" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "1602:117:37", + "nodeType": "YulFunctionDefinition", + "src": "1602:117:37" + }, + { + "body": { + "nativeSrc": "1814:28:37", + "nodeType": "YulBlock", + "src": "1814:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1831:1:37", + "nodeType": "YulLiteral", + "src": "1831:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1834:1:37", + "nodeType": "YulLiteral", + "src": "1834:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1824:6:37", + "nodeType": "YulIdentifier", + "src": "1824:6:37" + }, + "nativeSrc": "1824:12:37", + "nodeType": "YulFunctionCall", + "src": "1824:12:37" + }, + "nativeSrc": "1824:12:37", + "nodeType": "YulExpressionStatement", + "src": "1824:12:37" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "1725:117:37", + "nodeType": "YulFunctionDefinition", + "src": "1725:117:37" + }, + { + "body": { + "nativeSrc": "1896:54:37", + "nodeType": "YulBlock", + "src": "1896:54:37", + "statements": [ + { + "nativeSrc": "1906:38:37", + "nodeType": "YulAssignment", + "src": "1906:38:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1924:5:37", + "nodeType": "YulIdentifier", + "src": "1924:5:37" + }, + { + "kind": "number", + "nativeSrc": "1931:2:37", + "nodeType": "YulLiteral", + "src": "1931:2:37", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1920:3:37", + "nodeType": "YulIdentifier", + "src": "1920:3:37" + }, + "nativeSrc": "1920:14:37", + "nodeType": "YulFunctionCall", + "src": "1920:14:37" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1940:2:37", + "nodeType": "YulLiteral", + "src": "1940:2:37", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1936:3:37", + "nodeType": "YulIdentifier", + "src": "1936:3:37" + }, + "nativeSrc": "1936:7:37", + "nodeType": "YulFunctionCall", + "src": "1936:7:37" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1916:3:37", + "nodeType": "YulIdentifier", + "src": "1916:3:37" + }, + "nativeSrc": "1916:28:37", + "nodeType": "YulFunctionCall", + "src": "1916:28:37" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "1906:6:37", + "nodeType": "YulIdentifier", + "src": "1906:6:37" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "1848:102:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1879:5:37", + "nodeType": "YulTypedName", + "src": "1879:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "1889:6:37", + "nodeType": "YulTypedName", + "src": "1889:6:37", + "type": "" + } + ], + "src": "1848:102:37" + }, + { + "body": { + "nativeSrc": "1984:152:37", + "nodeType": "YulBlock", + "src": "1984:152:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2001:1:37", + "nodeType": "YulLiteral", + "src": "2001:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2004:77:37", + "nodeType": "YulLiteral", + "src": "2004:77:37", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1994:6:37", + "nodeType": "YulIdentifier", + "src": "1994:6:37" + }, + "nativeSrc": "1994:88:37", + "nodeType": "YulFunctionCall", + "src": "1994:88:37" + }, + "nativeSrc": "1994:88:37", + "nodeType": "YulExpressionStatement", + "src": "1994:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2098:1:37", + "nodeType": "YulLiteral", + "src": "2098:1:37", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "2101:4:37", + "nodeType": "YulLiteral", + "src": "2101:4:37", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2091:6:37", + "nodeType": "YulIdentifier", + "src": "2091:6:37" + }, + "nativeSrc": "2091:15:37", + "nodeType": "YulFunctionCall", + "src": "2091:15:37" + }, + "nativeSrc": "2091:15:37", + "nodeType": "YulExpressionStatement", + "src": "2091:15:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2122:1:37", + "nodeType": "YulLiteral", + "src": "2122:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2125:4:37", + "nodeType": "YulLiteral", + "src": "2125:4:37", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2115:6:37", + "nodeType": "YulIdentifier", + "src": "2115:6:37" + }, + "nativeSrc": "2115:15:37", + "nodeType": "YulFunctionCall", + "src": "2115:15:37" + }, + "nativeSrc": "2115:15:37", + "nodeType": "YulExpressionStatement", + "src": "2115:15:37" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "1956:180:37", + "nodeType": "YulFunctionDefinition", + "src": "1956:180:37" + }, + { + "body": { + "nativeSrc": "2185:238:37", + "nodeType": "YulBlock", + "src": "2185:238:37", + "statements": [ + { + "nativeSrc": "2195:58:37", + "nodeType": "YulVariableDeclaration", + "src": "2195:58:37", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "2217:6:37", + "nodeType": "YulIdentifier", + "src": "2217:6:37" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "2247:4:37", + "nodeType": "YulIdentifier", + "src": "2247:4:37" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2225:21:37", + "nodeType": "YulIdentifier", + "src": "2225:21:37" + }, + "nativeSrc": "2225:27:37", + "nodeType": "YulFunctionCall", + "src": "2225:27:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2213:3:37", + "nodeType": "YulIdentifier", + "src": "2213:3:37" + }, + "nativeSrc": "2213:40:37", + "nodeType": "YulFunctionCall", + "src": "2213:40:37" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "2199:10:37", + "nodeType": "YulTypedName", + "src": "2199:10:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2364:22:37", + "nodeType": "YulBlock", + "src": "2364:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "2366:16:37", + "nodeType": "YulIdentifier", + "src": "2366:16:37" + }, + "nativeSrc": "2366:18:37", + "nodeType": "YulFunctionCall", + "src": "2366:18:37" + }, + "nativeSrc": "2366:18:37", + "nodeType": "YulExpressionStatement", + "src": "2366:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "2307:10:37", + "nodeType": "YulIdentifier", + "src": "2307:10:37" + }, + { + "kind": "number", + "nativeSrc": "2319:18:37", + "nodeType": "YulLiteral", + "src": "2319:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2304:2:37", + "nodeType": "YulIdentifier", + "src": "2304:2:37" + }, + "nativeSrc": "2304:34:37", + "nodeType": "YulFunctionCall", + "src": "2304:34:37" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "2343:10:37", + "nodeType": "YulIdentifier", + "src": "2343:10:37" + }, + { + "name": "memPtr", + "nativeSrc": "2355:6:37", + "nodeType": "YulIdentifier", + "src": "2355:6:37" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2340:2:37", + "nodeType": "YulIdentifier", + "src": "2340:2:37" + }, + "nativeSrc": "2340:22:37", + "nodeType": "YulFunctionCall", + "src": "2340:22:37" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "2301:2:37", + "nodeType": "YulIdentifier", + "src": "2301:2:37" + }, + "nativeSrc": "2301:62:37", + "nodeType": "YulFunctionCall", + "src": "2301:62:37" + }, + "nativeSrc": "2298:88:37", + "nodeType": "YulIf", + "src": "2298:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2402:2:37", + "nodeType": "YulLiteral", + "src": "2402:2:37", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "2406:10:37", + "nodeType": "YulIdentifier", + "src": "2406:10:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2395:6:37", + "nodeType": "YulIdentifier", + "src": "2395:6:37" + }, + "nativeSrc": "2395:22:37", + "nodeType": "YulFunctionCall", + "src": "2395:22:37" + }, + "nativeSrc": "2395:22:37", + "nodeType": "YulExpressionStatement", + "src": "2395:22:37" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "2142:281:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "2171:6:37", + "nodeType": "YulTypedName", + "src": "2171:6:37", + "type": "" + }, + { + "name": "size", + "nativeSrc": "2179:4:37", + "nodeType": "YulTypedName", + "src": "2179:4:37", + "type": "" + } + ], + "src": "2142:281:37" + }, + { + "body": { + "nativeSrc": "2470:88:37", + "nodeType": "YulBlock", + "src": "2470:88:37", + "statements": [ + { + "nativeSrc": "2480:30:37", + "nodeType": "YulAssignment", + "src": "2480:30:37", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "2490:18:37", + "nodeType": "YulIdentifier", + "src": "2490:18:37" + }, + "nativeSrc": "2490:20:37", + "nodeType": "YulFunctionCall", + "src": "2490:20:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "2480:6:37", + "nodeType": "YulIdentifier", + "src": "2480:6:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "2539:6:37", + "nodeType": "YulIdentifier", + "src": "2539:6:37" + }, + { + "name": "size", + "nativeSrc": "2547:4:37", + "nodeType": "YulIdentifier", + "src": "2547:4:37" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "2519:19:37", + "nodeType": "YulIdentifier", + "src": "2519:19:37" + }, + "nativeSrc": "2519:33:37", + "nodeType": "YulFunctionCall", + "src": "2519:33:37" + }, + "nativeSrc": "2519:33:37", + "nodeType": "YulExpressionStatement", + "src": "2519:33:37" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "2429:129:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "2454:4:37", + "nodeType": "YulTypedName", + "src": "2454:4:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "2463:6:37", + "nodeType": "YulTypedName", + "src": "2463:6:37", + "type": "" + } + ], + "src": "2429:129:37" + }, + { + "body": { + "nativeSrc": "2630:241:37", + "nodeType": "YulBlock", + "src": "2630:241:37", + "statements": [ + { + "body": { + "nativeSrc": "2735:22:37", + "nodeType": "YulBlock", + "src": "2735:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "2737:16:37", + "nodeType": "YulIdentifier", + "src": "2737:16:37" + }, + "nativeSrc": "2737:18:37", + "nodeType": "YulFunctionCall", + "src": "2737:18:37" + }, + "nativeSrc": "2737:18:37", + "nodeType": "YulExpressionStatement", + "src": "2737:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "2707:6:37", + "nodeType": "YulIdentifier", + "src": "2707:6:37" + }, + { + "kind": "number", + "nativeSrc": "2715:18:37", + "nodeType": "YulLiteral", + "src": "2715:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2704:2:37", + "nodeType": "YulIdentifier", + "src": "2704:2:37" + }, + "nativeSrc": "2704:30:37", + "nodeType": "YulFunctionCall", + "src": "2704:30:37" + }, + "nativeSrc": "2701:56:37", + "nodeType": "YulIf", + "src": "2701:56:37" + }, + { + "nativeSrc": "2767:37:37", + "nodeType": "YulAssignment", + "src": "2767:37:37", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "2797:6:37", + "nodeType": "YulIdentifier", + "src": "2797:6:37" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2775:21:37", + "nodeType": "YulIdentifier", + "src": "2775:21:37" + }, + "nativeSrc": "2775:29:37", + "nodeType": "YulFunctionCall", + "src": "2775:29:37" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "2767:4:37", + "nodeType": "YulIdentifier", + "src": "2767:4:37" + } + ] + }, + { + "nativeSrc": "2841:23:37", + "nodeType": "YulAssignment", + "src": "2841:23:37", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "2853:4:37", + "nodeType": "YulIdentifier", + "src": "2853:4:37" + }, + { + "kind": "number", + "nativeSrc": "2859:4:37", + "nodeType": "YulLiteral", + "src": "2859:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2849:3:37", + "nodeType": "YulIdentifier", + "src": "2849:3:37" + }, + "nativeSrc": "2849:15:37", + "nodeType": "YulFunctionCall", + "src": "2849:15:37" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "2841:4:37", + "nodeType": "YulIdentifier", + "src": "2841:4:37" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "2564:307:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "2614:6:37", + "nodeType": "YulTypedName", + "src": "2614:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "2625:4:37", + "nodeType": "YulTypedName", + "src": "2625:4:37", + "type": "" + } + ], + "src": "2564:307:37" + }, + { + "body": { + "nativeSrc": "2941:84:37", + "nodeType": "YulBlock", + "src": "2941:84:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2965:3:37", + "nodeType": "YulIdentifier", + "src": "2965:3:37" + }, + { + "name": "src", + "nativeSrc": "2970:3:37", + "nodeType": "YulIdentifier", + "src": "2970:3:37" + }, + { + "name": "length", + "nativeSrc": "2975:6:37", + "nodeType": "YulIdentifier", + "src": "2975:6:37" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "2952:12:37", + "nodeType": "YulIdentifier", + "src": "2952:12:37" + }, + "nativeSrc": "2952:30:37", + "nodeType": "YulFunctionCall", + "src": "2952:30:37" + }, + "nativeSrc": "2952:30:37", + "nodeType": "YulExpressionStatement", + "src": "2952:30:37" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3002:3:37", + "nodeType": "YulIdentifier", + "src": "3002:3:37" + }, + { + "name": "length", + "nativeSrc": "3007:6:37", + "nodeType": "YulIdentifier", + "src": "3007:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2998:3:37", + "nodeType": "YulIdentifier", + "src": "2998:3:37" + }, + "nativeSrc": "2998:16:37", + "nodeType": "YulFunctionCall", + "src": "2998:16:37" + }, + { + "kind": "number", + "nativeSrc": "3016:1:37", + "nodeType": "YulLiteral", + "src": "3016:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2991:6:37", + "nodeType": "YulIdentifier", + "src": "2991:6:37" + }, + "nativeSrc": "2991:27:37", + "nodeType": "YulFunctionCall", + "src": "2991:27:37" + }, + "nativeSrc": "2991:27:37", + "nodeType": "YulExpressionStatement", + "src": "2991:27:37" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "2877:148:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "2923:3:37", + "nodeType": "YulTypedName", + "src": "2923:3:37", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "2928:3:37", + "nodeType": "YulTypedName", + "src": "2928:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "2933:6:37", + "nodeType": "YulTypedName", + "src": "2933:6:37", + "type": "" + } + ], + "src": "2877:148:37" + }, + { + "body": { + "nativeSrc": "3114:340:37", + "nodeType": "YulBlock", + "src": "3114:340:37", + "statements": [ + { + "nativeSrc": "3124:74:37", + "nodeType": "YulAssignment", + "src": "3124:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3190:6:37", + "nodeType": "YulIdentifier", + "src": "3190:6:37" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "3149:40:37", + "nodeType": "YulIdentifier", + "src": "3149:40:37" + }, + "nativeSrc": "3149:48:37", + "nodeType": "YulFunctionCall", + "src": "3149:48:37" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "3133:15:37", + "nodeType": "YulIdentifier", + "src": "3133:15:37" + }, + "nativeSrc": "3133:65:37", + "nodeType": "YulFunctionCall", + "src": "3133:65:37" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "3124:5:37", + "nodeType": "YulIdentifier", + "src": "3124:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "3214:5:37", + "nodeType": "YulIdentifier", + "src": "3214:5:37" + }, + { + "name": "length", + "nativeSrc": "3221:6:37", + "nodeType": "YulIdentifier", + "src": "3221:6:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3207:6:37", + "nodeType": "YulIdentifier", + "src": "3207:6:37" + }, + "nativeSrc": "3207:21:37", + "nodeType": "YulFunctionCall", + "src": "3207:21:37" + }, + "nativeSrc": "3207:21:37", + "nodeType": "YulExpressionStatement", + "src": "3207:21:37" + }, + { + "nativeSrc": "3237:27:37", + "nodeType": "YulVariableDeclaration", + "src": "3237:27:37", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "3252:5:37", + "nodeType": "YulIdentifier", + "src": "3252:5:37" + }, + { + "kind": "number", + "nativeSrc": "3259:4:37", + "nodeType": "YulLiteral", + "src": "3259:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3248:3:37", + "nodeType": "YulIdentifier", + "src": "3248:3:37" + }, + "nativeSrc": "3248:16:37", + "nodeType": "YulFunctionCall", + "src": "3248:16:37" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "3241:3:37", + "nodeType": "YulTypedName", + "src": "3241:3:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3302:83:37", + "nodeType": "YulBlock", + "src": "3302:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "3304:77:37", + "nodeType": "YulIdentifier", + "src": "3304:77:37" + }, + "nativeSrc": "3304:79:37", + "nodeType": "YulFunctionCall", + "src": "3304:79:37" + }, + "nativeSrc": "3304:79:37", + "nodeType": "YulExpressionStatement", + "src": "3304:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "3283:3:37", + "nodeType": "YulIdentifier", + "src": "3283:3:37" + }, + { + "name": "length", + "nativeSrc": "3288:6:37", + "nodeType": "YulIdentifier", + "src": "3288:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3279:3:37", + "nodeType": "YulIdentifier", + "src": "3279:3:37" + }, + "nativeSrc": "3279:16:37", + "nodeType": "YulFunctionCall", + "src": "3279:16:37" + }, + { + "name": "end", + "nativeSrc": "3297:3:37", + "nodeType": "YulIdentifier", + "src": "3297:3:37" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3276:2:37", + "nodeType": "YulIdentifier", + "src": "3276:2:37" + }, + "nativeSrc": "3276:25:37", + "nodeType": "YulFunctionCall", + "src": "3276:25:37" + }, + "nativeSrc": "3273:112:37", + "nodeType": "YulIf", + "src": "3273:112:37" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "3431:3:37", + "nodeType": "YulIdentifier", + "src": "3431:3:37" + }, + { + "name": "dst", + "nativeSrc": "3436:3:37", + "nodeType": "YulIdentifier", + "src": "3436:3:37" + }, + { + "name": "length", + "nativeSrc": "3441:6:37", + "nodeType": "YulIdentifier", + "src": "3441:6:37" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "3394:36:37", + "nodeType": "YulIdentifier", + "src": "3394:36:37" + }, + "nativeSrc": "3394:54:37", + "nodeType": "YulFunctionCall", + "src": "3394:54:37" + }, + "nativeSrc": "3394:54:37", + "nodeType": "YulExpressionStatement", + "src": "3394:54:37" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "3031:423:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "3087:3:37", + "nodeType": "YulTypedName", + "src": "3087:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3092:6:37", + "nodeType": "YulTypedName", + "src": "3092:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3100:3:37", + "nodeType": "YulTypedName", + "src": "3100:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "3108:5:37", + "nodeType": "YulTypedName", + "src": "3108:5:37", + "type": "" + } + ], + "src": "3031:423:37" + }, + { + "body": { + "nativeSrc": "3534:277:37", + "nodeType": "YulBlock", + "src": "3534:277:37", + "statements": [ + { + "body": { + "nativeSrc": "3583:83:37", + "nodeType": "YulBlock", + "src": "3583:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "3585:77:37", + "nodeType": "YulIdentifier", + "src": "3585:77:37" + }, + "nativeSrc": "3585:79:37", + "nodeType": "YulFunctionCall", + "src": "3585:79:37" + }, + "nativeSrc": "3585:79:37", + "nodeType": "YulExpressionStatement", + "src": "3585:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3562:6:37", + "nodeType": "YulIdentifier", + "src": "3562:6:37" + }, + { + "kind": "number", + "nativeSrc": "3570:4:37", + "nodeType": "YulLiteral", + "src": "3570:4:37", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3558:3:37", + "nodeType": "YulIdentifier", + "src": "3558:3:37" + }, + "nativeSrc": "3558:17:37", + "nodeType": "YulFunctionCall", + "src": "3558:17:37" + }, + { + "name": "end", + "nativeSrc": "3577:3:37", + "nodeType": "YulIdentifier", + "src": "3577:3:37" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3554:3:37", + "nodeType": "YulIdentifier", + "src": "3554:3:37" + }, + "nativeSrc": "3554:27:37", + "nodeType": "YulFunctionCall", + "src": "3554:27:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3547:6:37", + "nodeType": "YulIdentifier", + "src": "3547:6:37" + }, + "nativeSrc": "3547:35:37", + "nodeType": "YulFunctionCall", + "src": "3547:35:37" + }, + "nativeSrc": "3544:122:37", + "nodeType": "YulIf", + "src": "3544:122:37" + }, + { + "nativeSrc": "3675:34:37", + "nodeType": "YulVariableDeclaration", + "src": "3675:34:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3702:6:37", + "nodeType": "YulIdentifier", + "src": "3702:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3689:12:37", + "nodeType": "YulIdentifier", + "src": "3689:12:37" + }, + "nativeSrc": "3689:20:37", + "nodeType": "YulFunctionCall", + "src": "3689:20:37" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "3679:6:37", + "nodeType": "YulTypedName", + "src": "3679:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3718:87:37", + "nodeType": "YulAssignment", + "src": "3718:87:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3778:6:37", + "nodeType": "YulIdentifier", + "src": "3778:6:37" + }, + { + "kind": "number", + "nativeSrc": "3786:4:37", + "nodeType": "YulLiteral", + "src": "3786:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3774:3:37", + "nodeType": "YulIdentifier", + "src": "3774:3:37" + }, + "nativeSrc": "3774:17:37", + "nodeType": "YulFunctionCall", + "src": "3774:17:37" + }, + { + "name": "length", + "nativeSrc": "3793:6:37", + "nodeType": "YulIdentifier", + "src": "3793:6:37" + }, + { + "name": "end", + "nativeSrc": "3801:3:37", + "nodeType": "YulIdentifier", + "src": "3801:3:37" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "3727:46:37", + "nodeType": "YulIdentifier", + "src": "3727:46:37" + }, + "nativeSrc": "3727:78:37", + "nodeType": "YulFunctionCall", + "src": "3727:78:37" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "3718:5:37", + "nodeType": "YulIdentifier", + "src": "3718:5:37" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "3473:338:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3512:6:37", + "nodeType": "YulTypedName", + "src": "3512:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3520:3:37", + "nodeType": "YulTypedName", + "src": "3520:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "3528:5:37", + "nodeType": "YulTypedName", + "src": "3528:5:37", + "type": "" + } + ], + "src": "3473:338:37" + }, + { + "body": { + "nativeSrc": "3917:568:37", + "nodeType": "YulBlock", + "src": "3917:568:37", + "statements": [ + { + "body": { + "nativeSrc": "3963:83:37", + "nodeType": "YulBlock", + "src": "3963:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3965:77:37", + "nodeType": "YulIdentifier", + "src": "3965:77:37" + }, + "nativeSrc": "3965:79:37", + "nodeType": "YulFunctionCall", + "src": "3965:79:37" + }, + "nativeSrc": "3965:79:37", + "nodeType": "YulExpressionStatement", + "src": "3965:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3938:7:37", + "nodeType": "YulIdentifier", + "src": "3938:7:37" + }, + { + "name": "headStart", + "nativeSrc": "3947:9:37", + "nodeType": "YulIdentifier", + "src": "3947:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3934:3:37", + "nodeType": "YulIdentifier", + "src": "3934:3:37" + }, + "nativeSrc": "3934:23:37", + "nodeType": "YulFunctionCall", + "src": "3934:23:37" + }, + { + "kind": "number", + "nativeSrc": "3959:2:37", + "nodeType": "YulLiteral", + "src": "3959:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3930:3:37", + "nodeType": "YulIdentifier", + "src": "3930:3:37" + }, + "nativeSrc": "3930:32:37", + "nodeType": "YulFunctionCall", + "src": "3930:32:37" + }, + "nativeSrc": "3927:119:37", + "nodeType": "YulIf", + "src": "3927:119:37" + }, + { + "nativeSrc": "4056:125:37", + "nodeType": "YulBlock", + "src": "4056:125:37", + "statements": [ + { + "nativeSrc": "4071:15:37", + "nodeType": "YulVariableDeclaration", + "src": "4071:15:37", + "value": { + "kind": "number", + "nativeSrc": "4085:1:37", + "nodeType": "YulLiteral", + "src": "4085:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4075:6:37", + "nodeType": "YulTypedName", + "src": "4075:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "4100:71:37", + "nodeType": "YulAssignment", + "src": "4100:71:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4143:9:37", + "nodeType": "YulIdentifier", + "src": "4143:9:37" + }, + { + "name": "offset", + "nativeSrc": "4154:6:37", + "nodeType": "YulIdentifier", + "src": "4154:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4139:3:37", + "nodeType": "YulIdentifier", + "src": "4139:3:37" + }, + "nativeSrc": "4139:22:37", + "nodeType": "YulFunctionCall", + "src": "4139:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4163:7:37", + "nodeType": "YulIdentifier", + "src": "4163:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_payable", + "nativeSrc": "4110:28:37", + "nodeType": "YulIdentifier", + "src": "4110:28:37" + }, + "nativeSrc": "4110:61:37", + "nodeType": "YulFunctionCall", + "src": "4110:61:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4100:6:37", + "nodeType": "YulIdentifier", + "src": "4100:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "4191:287:37", + "nodeType": "YulBlock", + "src": "4191:287:37", + "statements": [ + { + "nativeSrc": "4206:46:37", + "nodeType": "YulVariableDeclaration", + "src": "4206:46:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4237:9:37", + "nodeType": "YulIdentifier", + "src": "4237:9:37" + }, + { + "kind": "number", + "nativeSrc": "4248:2:37", + "nodeType": "YulLiteral", + "src": "4248:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4233:3:37", + "nodeType": "YulIdentifier", + "src": "4233:3:37" + }, + "nativeSrc": "4233:18:37", + "nodeType": "YulFunctionCall", + "src": "4233:18:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4220:12:37", + "nodeType": "YulIdentifier", + "src": "4220:12:37" + }, + "nativeSrc": "4220:32:37", + "nodeType": "YulFunctionCall", + "src": "4220:32:37" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4210:6:37", + "nodeType": "YulTypedName", + "src": "4210:6:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4299:83:37", + "nodeType": "YulBlock", + "src": "4299:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "4301:77:37", + "nodeType": "YulIdentifier", + "src": "4301:77:37" + }, + "nativeSrc": "4301:79:37", + "nodeType": "YulFunctionCall", + "src": "4301:79:37" + }, + "nativeSrc": "4301:79:37", + "nodeType": "YulExpressionStatement", + "src": "4301:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4271:6:37", + "nodeType": "YulIdentifier", + "src": "4271:6:37" + }, + { + "kind": "number", + "nativeSrc": "4279:18:37", + "nodeType": "YulLiteral", + "src": "4279:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4268:2:37", + "nodeType": "YulIdentifier", + "src": "4268:2:37" + }, + "nativeSrc": "4268:30:37", + "nodeType": "YulFunctionCall", + "src": "4268:30:37" + }, + "nativeSrc": "4265:117:37", + "nodeType": "YulIf", + "src": "4265:117:37" + }, + { + "nativeSrc": "4396:72:37", + "nodeType": "YulAssignment", + "src": "4396:72:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4440:9:37", + "nodeType": "YulIdentifier", + "src": "4440:9:37" + }, + { + "name": "offset", + "nativeSrc": "4451:6:37", + "nodeType": "YulIdentifier", + "src": "4451:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4436:3:37", + "nodeType": "YulIdentifier", + "src": "4436:3:37" + }, + "nativeSrc": "4436:22:37", + "nodeType": "YulFunctionCall", + "src": "4436:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4460:7:37", + "nodeType": "YulIdentifier", + "src": "4460:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "4406:29:37", + "nodeType": "YulIdentifier", + "src": "4406:29:37" + }, + "nativeSrc": "4406:62:37", + "nodeType": "YulFunctionCall", + "src": "4406:62:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4396:6:37", + "nodeType": "YulIdentifier", + "src": "4396:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_payablet_bytes_memory_ptr", + "nativeSrc": "3817:668:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3879:9:37", + "nodeType": "YulTypedName", + "src": "3879:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3890:7:37", + "nodeType": "YulTypedName", + "src": "3890:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3902:6:37", + "nodeType": "YulTypedName", + "src": "3902:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3910:6:37", + "nodeType": "YulTypedName", + "src": "3910:6:37", + "type": "" + } + ], + "src": "3817:668:37" + }, + { + "body": { + "nativeSrc": "4536:51:37", + "nodeType": "YulBlock", + "src": "4536:51:37", + "statements": [ + { + "nativeSrc": "4546:35:37", + "nodeType": "YulAssignment", + "src": "4546:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4575:5:37", + "nodeType": "YulIdentifier", + "src": "4575:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "4557:17:37", + "nodeType": "YulIdentifier", + "src": "4557:17:37" + }, + "nativeSrc": "4557:24:37", + "nodeType": "YulFunctionCall", + "src": "4557:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "4546:7:37", + "nodeType": "YulIdentifier", + "src": "4546:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "4491:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4518:5:37", + "nodeType": "YulTypedName", + "src": "4518:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4528:7:37", + "nodeType": "YulTypedName", + "src": "4528:7:37", + "type": "" + } + ], + "src": "4491:96:37" + }, + { + "body": { + "nativeSrc": "4658:53:37", + "nodeType": "YulBlock", + "src": "4658:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4675:3:37", + "nodeType": "YulIdentifier", + "src": "4675:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4698:5:37", + "nodeType": "YulIdentifier", + "src": "4698:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "4680:17:37", + "nodeType": "YulIdentifier", + "src": "4680:17:37" + }, + "nativeSrc": "4680:24:37", + "nodeType": "YulFunctionCall", + "src": "4680:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4668:6:37", + "nodeType": "YulIdentifier", + "src": "4668:6:37" + }, + "nativeSrc": "4668:37:37", + "nodeType": "YulFunctionCall", + "src": "4668:37:37" + }, + "nativeSrc": "4668:37:37", + "nodeType": "YulExpressionStatement", + "src": "4668:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4593:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4646:5:37", + "nodeType": "YulTypedName", + "src": "4646:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4653:3:37", + "nodeType": "YulTypedName", + "src": "4653:3:37", + "type": "" + } + ], + "src": "4593:118:37" + }, + { + "body": { + "nativeSrc": "4815:124:37", + "nodeType": "YulBlock", + "src": "4815:124:37", + "statements": [ + { + "nativeSrc": "4825:26:37", + "nodeType": "YulAssignment", + "src": "4825:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4837:9:37", + "nodeType": "YulIdentifier", + "src": "4837:9:37" + }, + { + "kind": "number", + "nativeSrc": "4848:2:37", + "nodeType": "YulLiteral", + "src": "4848:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4833:3:37", + "nodeType": "YulIdentifier", + "src": "4833:3:37" + }, + "nativeSrc": "4833:18:37", + "nodeType": "YulFunctionCall", + "src": "4833:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4825:4:37", + "nodeType": "YulIdentifier", + "src": "4825:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4905:6:37", + "nodeType": "YulIdentifier", + "src": "4905:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4918:9:37", + "nodeType": "YulIdentifier", + "src": "4918:9:37" + }, + { + "kind": "number", + "nativeSrc": "4929:1:37", + "nodeType": "YulLiteral", + "src": "4929:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4914:3:37", + "nodeType": "YulIdentifier", + "src": "4914:3:37" + }, + "nativeSrc": "4914:17:37", + "nodeType": "YulFunctionCall", + "src": "4914:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4861:43:37", + "nodeType": "YulIdentifier", + "src": "4861:43:37" + }, + "nativeSrc": "4861:71:37", + "nodeType": "YulFunctionCall", + "src": "4861:71:37" + }, + "nativeSrc": "4861:71:37", + "nodeType": "YulExpressionStatement", + "src": "4861:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "4717:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4787:9:37", + "nodeType": "YulTypedName", + "src": "4787:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4799:6:37", + "nodeType": "YulTypedName", + "src": "4799:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4810:4:37", + "nodeType": "YulTypedName", + "src": "4810:4:37", + "type": "" + } + ], + "src": "4717:222:37" + }, + { + "body": { + "nativeSrc": "5003:40:37", + "nodeType": "YulBlock", + "src": "5003:40:37", + "statements": [ + { + "nativeSrc": "5014:22:37", + "nodeType": "YulAssignment", + "src": "5014:22:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5030:5:37", + "nodeType": "YulIdentifier", + "src": "5030:5:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5024:5:37", + "nodeType": "YulIdentifier", + "src": "5024:5:37" + }, + "nativeSrc": "5024:12:37", + "nodeType": "YulFunctionCall", + "src": "5024:12:37" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "5014:6:37", + "nodeType": "YulIdentifier", + "src": "5014:6:37" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "4945:98:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4986:5:37", + "nodeType": "YulTypedName", + "src": "4986:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "4996:6:37", + "nodeType": "YulTypedName", + "src": "4996:6:37", + "type": "" + } + ], + "src": "4945:98:37" + }, + { + "body": { + "nativeSrc": "5162:34:37", + "nodeType": "YulBlock", + "src": "5162:34:37", + "statements": [ + { + "nativeSrc": "5172:18:37", + "nodeType": "YulAssignment", + "src": "5172:18:37", + "value": { + "name": "pos", + "nativeSrc": "5187:3:37", + "nodeType": "YulIdentifier", + "src": "5187:3:37" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "5172:11:37", + "nodeType": "YulIdentifier", + "src": "5172:11:37" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "5049:147:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "5134:3:37", + "nodeType": "YulTypedName", + "src": "5134:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "5139:6:37", + "nodeType": "YulTypedName", + "src": "5139:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "5150:11:37", + "nodeType": "YulTypedName", + "src": "5150:11:37", + "type": "" + } + ], + "src": "5049:147:37" + }, + { + "body": { + "nativeSrc": "5264:186:37", + "nodeType": "YulBlock", + "src": "5264:186:37", + "statements": [ + { + "nativeSrc": "5275:10:37", + "nodeType": "YulVariableDeclaration", + "src": "5275:10:37", + "value": { + "kind": "number", + "nativeSrc": "5284:1:37", + "nodeType": "YulLiteral", + "src": "5284:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "5279:1:37", + "nodeType": "YulTypedName", + "src": "5279:1:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5344:63:37", + "nodeType": "YulBlock", + "src": "5344:63:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "5369:3:37", + "nodeType": "YulIdentifier", + "src": "5369:3:37" + }, + { + "name": "i", + "nativeSrc": "5374:1:37", + "nodeType": "YulIdentifier", + "src": "5374:1:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5365:3:37", + "nodeType": "YulIdentifier", + "src": "5365:3:37" + }, + "nativeSrc": "5365:11:37", + "nodeType": "YulFunctionCall", + "src": "5365:11:37" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "5388:3:37", + "nodeType": "YulIdentifier", + "src": "5388:3:37" + }, + { + "name": "i", + "nativeSrc": "5393:1:37", + "nodeType": "YulIdentifier", + "src": "5393:1:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5384:3:37", + "nodeType": "YulIdentifier", + "src": "5384:3:37" + }, + "nativeSrc": "5384:11:37", + "nodeType": "YulFunctionCall", + "src": "5384:11:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5378:5:37", + "nodeType": "YulIdentifier", + "src": "5378:5:37" + }, + "nativeSrc": "5378:18:37", + "nodeType": "YulFunctionCall", + "src": "5378:18:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5358:6:37", + "nodeType": "YulIdentifier", + "src": "5358:6:37" + }, + "nativeSrc": "5358:39:37", + "nodeType": "YulFunctionCall", + "src": "5358:39:37" + }, + "nativeSrc": "5358:39:37", + "nodeType": "YulExpressionStatement", + "src": "5358:39:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "5305:1:37", + "nodeType": "YulIdentifier", + "src": "5305:1:37" + }, + { + "name": "length", + "nativeSrc": "5308:6:37", + "nodeType": "YulIdentifier", + "src": "5308:6:37" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5302:2:37", + "nodeType": "YulIdentifier", + "src": "5302:2:37" + }, + "nativeSrc": "5302:13:37", + "nodeType": "YulFunctionCall", + "src": "5302:13:37" + }, + "nativeSrc": "5294:113:37", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5316:19:37", + "nodeType": "YulBlock", + "src": "5316:19:37", + "statements": [ + { + "nativeSrc": "5318:15:37", + "nodeType": "YulAssignment", + "src": "5318:15:37", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "5327:1:37", + "nodeType": "YulIdentifier", + "src": "5327:1:37" + }, + { + "kind": "number", + "nativeSrc": "5330:2:37", + "nodeType": "YulLiteral", + "src": "5330:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5323:3:37", + "nodeType": "YulIdentifier", + "src": "5323:3:37" + }, + "nativeSrc": "5323:10:37", + "nodeType": "YulFunctionCall", + "src": "5323:10:37" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "5318:1:37", + "nodeType": "YulIdentifier", + "src": "5318:1:37" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5298:3:37", + "nodeType": "YulBlock", + "src": "5298:3:37", + "statements": [] + }, + "src": "5294:113:37" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "5427:3:37", + "nodeType": "YulIdentifier", + "src": "5427:3:37" + }, + { + "name": "length", + "nativeSrc": "5432:6:37", + "nodeType": "YulIdentifier", + "src": "5432:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5423:3:37", + "nodeType": "YulIdentifier", + "src": "5423:3:37" + }, + "nativeSrc": "5423:16:37", + "nodeType": "YulFunctionCall", + "src": "5423:16:37" + }, + { + "kind": "number", + "nativeSrc": "5441:1:37", + "nodeType": "YulLiteral", + "src": "5441:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5416:6:37", + "nodeType": "YulIdentifier", + "src": "5416:6:37" + }, + "nativeSrc": "5416:27:37", + "nodeType": "YulFunctionCall", + "src": "5416:27:37" + }, + "nativeSrc": "5416:27:37", + "nodeType": "YulExpressionStatement", + "src": "5416:27:37" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "5202:248:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "5246:3:37", + "nodeType": "YulTypedName", + "src": "5246:3:37", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "5251:3:37", + "nodeType": "YulTypedName", + "src": "5251:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "5256:6:37", + "nodeType": "YulTypedName", + "src": "5256:6:37", + "type": "" + } + ], + "src": "5202:248:37" + }, + { + "body": { + "nativeSrc": "5564:278:37", + "nodeType": "YulBlock", + "src": "5564:278:37", + "statements": [ + { + "nativeSrc": "5574:52:37", + "nodeType": "YulVariableDeclaration", + "src": "5574:52:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5620:5:37", + "nodeType": "YulIdentifier", + "src": "5620:5:37" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "5588:31:37", + "nodeType": "YulIdentifier", + "src": "5588:31:37" + }, + "nativeSrc": "5588:38:37", + "nodeType": "YulFunctionCall", + "src": "5588:38:37" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "5578:6:37", + "nodeType": "YulTypedName", + "src": "5578:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "5635:95:37", + "nodeType": "YulAssignment", + "src": "5635:95:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5718:3:37", + "nodeType": "YulIdentifier", + "src": "5718:3:37" + }, + { + "name": "length", + "nativeSrc": "5723:6:37", + "nodeType": "YulIdentifier", + "src": "5723:6:37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "5642:75:37", + "nodeType": "YulIdentifier", + "src": "5642:75:37" + }, + "nativeSrc": "5642:88:37", + "nodeType": "YulFunctionCall", + "src": "5642:88:37" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "5635:3:37", + "nodeType": "YulIdentifier", + "src": "5635:3:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5778:5:37", + "nodeType": "YulIdentifier", + "src": "5778:5:37" + }, + { + "kind": "number", + "nativeSrc": "5785:4:37", + "nodeType": "YulLiteral", + "src": "5785:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5774:3:37", + "nodeType": "YulIdentifier", + "src": "5774:3:37" + }, + "nativeSrc": "5774:16:37", + "nodeType": "YulFunctionCall", + "src": "5774:16:37" + }, + { + "name": "pos", + "nativeSrc": "5792:3:37", + "nodeType": "YulIdentifier", + "src": "5792:3:37" + }, + { + "name": "length", + "nativeSrc": "5797:6:37", + "nodeType": "YulIdentifier", + "src": "5797:6:37" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "5739:34:37", + "nodeType": "YulIdentifier", + "src": "5739:34:37" + }, + "nativeSrc": "5739:65:37", + "nodeType": "YulFunctionCall", + "src": "5739:65:37" + }, + "nativeSrc": "5739:65:37", + "nodeType": "YulExpressionStatement", + "src": "5739:65:37" + }, + { + "nativeSrc": "5813:23:37", + "nodeType": "YulAssignment", + "src": "5813:23:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5824:3:37", + "nodeType": "YulIdentifier", + "src": "5824:3:37" + }, + { + "name": "length", + "nativeSrc": "5829:6:37", + "nodeType": "YulIdentifier", + "src": "5829:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5820:3:37", + "nodeType": "YulIdentifier", + "src": "5820:3:37" + }, + "nativeSrc": "5820:16:37", + "nodeType": "YulFunctionCall", + "src": "5820:16:37" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "5813:3:37", + "nodeType": "YulIdentifier", + "src": "5813:3:37" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "5456:386:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5545:5:37", + "nodeType": "YulTypedName", + "src": "5545:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5552:3:37", + "nodeType": "YulTypedName", + "src": "5552:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "5560:3:37", + "nodeType": "YulTypedName", + "src": "5560:3:37", + "type": "" + } + ], + "src": "5456:386:37" + }, + { + "body": { + "nativeSrc": "5982:137:37", + "nodeType": "YulBlock", + "src": "5982:137:37", + "statements": [ + { + "nativeSrc": "5993:100:37", + "nodeType": "YulAssignment", + "src": "5993:100:37", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6080:6:37", + "nodeType": "YulIdentifier", + "src": "6080:6:37" + }, + { + "name": "pos", + "nativeSrc": "6089:3:37", + "nodeType": "YulIdentifier", + "src": "6089:3:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "6000:79:37", + "nodeType": "YulIdentifier", + "src": "6000:79:37" + }, + "nativeSrc": "6000:93:37", + "nodeType": "YulFunctionCall", + "src": "6000:93:37" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "5993:3:37", + "nodeType": "YulIdentifier", + "src": "5993:3:37" + } + ] + }, + { + "nativeSrc": "6103:10:37", + "nodeType": "YulAssignment", + "src": "6103:10:37", + "value": { + "name": "pos", + "nativeSrc": "6110:3:37", + "nodeType": "YulIdentifier", + "src": "6110:3:37" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "6103:3:37", + "nodeType": "YulIdentifier", + "src": "6103:3:37" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "5848:271:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "5961:3:37", + "nodeType": "YulTypedName", + "src": "5961:3:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5967:6:37", + "nodeType": "YulTypedName", + "src": "5967:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "5978:3:37", + "nodeType": "YulTypedName", + "src": "5978:3:37", + "type": "" + } + ], + "src": "5848:271:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a() {\n revert(0, 0)\n }\n\n function revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c() {\n revert(0, 0)\n }\n\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut {\n if gt(startIndex, endIndex) { revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a() }\n if gt(endIndex, length) { revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c() }\n offsetOut := add(offset, mul(startIndex, 1))\n lengthOut := sub(endIndex, startIndex)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_address_payablet_bytes_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "3027": [ + { + "length": 32, + "start": 262 + } + ] + }, + "linkReferences": {}, + "object": "608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea2646970667358221220822de418beb5a325cfb8f4bb063c678ed495b4367e9e78b179c23a652dfdfe7064736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0xC PUSH2 0xE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16 PUSH2 0x102 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF7 JUMPI PUSH4 0x4F1EF286 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x0 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0xEA JUMPI PUSH1 0x40 MLOAD PUSH32 0xD2B576EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF2 PUSH2 0x12A JUMP JUMPDEST PUSH2 0x100 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x160 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLDATASIZE PUSH1 0x4 SWAP1 DUP1 SWAP3 PUSH2 0x141 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4F1 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0x6DA JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x15C DUP3 DUP3 PUSH2 0x172 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x170 PUSH2 0x16B PUSH2 0x1E5 JUMP JUMPDEST PUSH2 0x1F4 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x17B DUP3 PUSH2 0x21A JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x1D8 JUMPI PUSH2 0x1D2 DUP3 DUP3 PUSH2 0x2E7 JUMP JUMPDEST POP PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x36B JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF PUSH2 0x3A8 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x215 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x276 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x2A3 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x311 SWAP2 SWAP1 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x351 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x361 DUP6 DUP4 DUP4 PUSH2 0x409 JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x3A6 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D6 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x41E JUMPI PUSH2 0x419 DUP3 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x490 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x446 JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x488 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x47F SWAP2 SWAP1 PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x491 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x4AB JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1425EA4200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x505 JUMPI PUSH2 0x504 PUSH2 0x4E7 JUMP JUMPDEST JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x516 JUMPI PUSH2 0x515 PUSH2 0x4EC JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 MUL DUP4 ADD SWAP2 POP DUP5 DUP7 SUB SWAP1 POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x561 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x571 DUP2 PUSH2 0x556 JUMP JUMPDEST DUP2 EQ PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x58E DUP2 PUSH2 0x568 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x5E7 DUP3 PUSH2 0x59E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x606 JUMPI PUSH2 0x605 PUSH2 0x5AF JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x619 PUSH2 0x4DD JUMP JUMPDEST SWAP1 POP PUSH2 0x625 DUP3 DUP3 PUSH2 0x5DE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x645 JUMPI PUSH2 0x644 PUSH2 0x5AF JUMP JUMPDEST JUMPDEST PUSH2 0x64E DUP3 PUSH2 0x59E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67D PUSH2 0x678 DUP5 PUSH2 0x62A JUMP JUMPDEST PUSH2 0x60F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x699 JUMPI PUSH2 0x698 PUSH2 0x599 JUMP JUMPDEST JUMPDEST PUSH2 0x6A4 DUP5 DUP3 DUP6 PUSH2 0x65B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x6C1 JUMPI PUSH2 0x6C0 PUSH2 0x594 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x6D1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x66A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6F1 JUMPI PUSH2 0x6F0 PUSH2 0x52C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x6FF DUP6 DUP3 DUP7 ADD PUSH2 0x57F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x720 JUMPI PUSH2 0x71F PUSH2 0x531 JUMP JUMPDEST JUMPDEST PUSH2 0x72C DUP6 DUP3 DUP7 ADD PUSH2 0x6AC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x741 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x751 DUP2 PUSH2 0x736 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x76C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x748 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7A6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x78B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BD DUP3 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x7C7 DUP2 DUP6 PUSH2 0x77D JUMP JUMPDEST SWAP4 POP PUSH2 0x7D7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x788 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EF DUP3 DUP5 PUSH2 0x7B2 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP3 0x2D 0xE4 XOR 0xBE 0xB5 LOG3 0x25 0xCF 0xB8 DELEGATECALL 0xBB MOD EXTCODECOPY PUSH8 0x8ED495B4367E9E78 0xB1 PUSH26 0xC23A652DFDFE7064736F6C634300081C00330000000000000000 ", + "sourceMap": "4145:2226:18:-:0;;;2649:11:15;:9;:11::i;:::-;4145:2226:18;5581:369;5656:13;:11;:13::i;:::-;5642:27;;:10;:27;;;5638:306;;5700:54;;;5689:65;;;:7;;;;:65;;;;5685:201;;5781:24;;;;;;;;;;;;;;5685:201;5844:27;:25;:27::i;:::-;5638:306;;;5916:17;:15;:17::i;:::-;5638:306;5581:369::o;5351:88::-;5400:7;5426:6;5419:13;;5351:88;:::o;6152:217::-;6208:25;6235:17;6267:8;;6276:1;6267:12;;;;;;;;;:::i;:::-;6256:42;;;;;;;:::i;:::-;6207:91;;;;6308:54;6338:17;6357:4;6308:29;:54::i;:::-;6197:172;;6152:217::o;2323:83:15:-;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;:::-;2323:83::o;2779:335:14:-;2870:37;2889:17;2870:18;:37::i;:::-;2931:17;2922:27;;;;;;;;;;;;2978:1;2964:4;:11;:15;2960:148;;;2995:53;3024:17;3043:4;2995:28;:53::i;:::-;;2960:148;;;3079:18;:16;:18::i;:::-;2960:148;2779:335;;:::o;1581:132:13:-;1648:7;1674:32;:30;:32::i;:::-;1667:39;;1581:132;:::o;949:895:15:-;1287:14;1284:1;1281;1268:34;1501:1;1498;1482:14;1479:1;1463:14;1456:5;1443:60;1577:16;1574:1;1571;1556:38;1615:6;1687:1;1682:66;;;;1797:16;1794:1;1787:27;1682:66;1717:16;1714:1;1707:27;2186:281:14;2296:1;2263:17;:29;;;:34;2259:119;;2349:17;2320:47;;;;;;;;;;;:::i;:::-;;;;;;;;2259:119;2443:17;2387:47;1327:66;2414:19;;2387:26;:47::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;2186:281;:::o;4106:253:19:-;4189:12;4214;4228:23;4255:6;:19;;4275:4;4255:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4213:67;;;;4297:55;4324:6;4332:7;4341:10;4297:26;:55::i;:::-;4290:62;;;;4106:253;;;;:::o;6598:122:14:-;6660:1;6648:9;:13;6644:70;;;6684:19;;;;;;;;;;;;;;6644:70;6598:122::o;1957:138::-;2009:7;2035:47;1327:66;2062:19;;2035:26;:47::i;:::-;:53;;;;;;;;;;;;2028:60;;1957:138;:::o;1684:190:22:-;1745:21;1854:4;1844:14;;1684:190;;;:::o;4625:582:19:-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5066:1;5045:10;:17;:22;:49;;;;;5093:1;5071:6;:18;;;:23;5045:49;5041:119;;;5138:6;5121:24;;;;;;;;;;;:::i;:::-;;;;;;;;5041:119;5180:10;5173:17;;;;4793:408;4625:582;;;;;;:::o;5743:516::-;5894:1;5874:10;:17;:21;5870:383;;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;;;;;;;;;;;;;7:75:37;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:469;439:9;450;488:8;476:10;473:24;470:111;;;500:79;;:::i;:::-;470:111;606:6;596:8;593:20;590:107;;;616:79;;:::i;:::-;590:107;747:1;735:10;731:18;723:6;719:31;706:44;;786:10;776:8;772:25;759:38;;334:469;;;;;;;:::o;809:117::-;918:1;915;908:12;932:117;1041:1;1038;1031:12;1055:126;1092:7;1132:42;1125:5;1121:54;1110:65;;1055:126;;;:::o;1187:104::-;1232:7;1261:24;1279:5;1261:24;:::i;:::-;1250:35;;1187:104;;;:::o;1297:138::-;1378:32;1404:5;1378:32;:::i;:::-;1371:5;1368:43;1358:71;;1425:1;1422;1415:12;1358:71;1297:138;:::o;1441:155::-;1495:5;1533:6;1520:20;1511:29;;1549:41;1584:5;1549:41;:::i;:::-;1441:155;;;;:::o;1602:117::-;1711:1;1708;1701:12;1725:117;1834:1;1831;1824:12;1848:102;1889:6;1940:2;1936:7;1931:2;1924:5;1920:14;1916:28;1906:38;;1848:102;;;:::o;1956:180::-;2004:77;2001:1;1994:88;2101:4;2098:1;2091:15;2125:4;2122:1;2115:15;2142:281;2225:27;2247:4;2225:27;:::i;:::-;2217:6;2213:40;2355:6;2343:10;2340:22;2319:18;2307:10;2304:34;2301:62;2298:88;;;2366:18;;:::i;:::-;2298:88;2406:10;2402:2;2395:22;2185:238;2142:281;;:::o;2429:129::-;2463:6;2490:20;;:::i;:::-;2480:30;;2519:33;2547:4;2539:6;2519:33;:::i;:::-;2429:129;;;:::o;2564:307::-;2625:4;2715:18;2707:6;2704:30;2701:56;;;2737:18;;:::i;:::-;2701:56;2775:29;2797:6;2775:29;:::i;:::-;2767:37;;2859:4;2853;2849:15;2841:23;;2564:307;;;:::o;2877:148::-;2975:6;2970:3;2965;2952:30;3016:1;3007:6;3002:3;2998:16;2991:27;2877:148;;;:::o;3031:423::-;3108:5;3133:65;3149:48;3190:6;3149:48;:::i;:::-;3133:65;:::i;:::-;3124:74;;3221:6;3214:5;3207:21;3259:4;3252:5;3248:16;3297:3;3288:6;3283:3;3279:16;3276:25;3273:112;;;3304:79;;:::i;:::-;3273:112;3394:54;3441:6;3436:3;3431;3394:54;:::i;:::-;3114:340;3031:423;;;;;:::o;3473:338::-;3528:5;3577:3;3570:4;3562:6;3558:17;3554:27;3544:122;;3585:79;;:::i;:::-;3544:122;3702:6;3689:20;3727:78;3801:3;3793:6;3786:4;3778:6;3774:17;3727:78;:::i;:::-;3718:87;;3534:277;3473:338;;;;:::o;3817:668::-;3902:6;3910;3959:2;3947:9;3938:7;3934:23;3930:32;3927:119;;;3965:79;;:::i;:::-;3927:119;4085:1;4110:61;4163:7;4154:6;4143:9;4139:22;4110:61;:::i;:::-;4100:71;;4056:125;4248:2;4237:9;4233:18;4220:32;4279:18;4271:6;4268:30;4265:117;;;4301:79;;:::i;:::-;4265:117;4406:62;4460:7;4451:6;4440:9;4436:22;4406:62;:::i;:::-;4396:72;;4191:287;3817:668;;;;;:::o;4491:96::-;4528:7;4557:24;4575:5;4557:24;:::i;:::-;4546:35;;4491:96;;;:::o;4593:118::-;4680:24;4698:5;4680:24;:::i;:::-;4675:3;4668:37;4593:118;;:::o;4717:222::-;4810:4;4848:2;4837:9;4833:18;4825:26;;4861:71;4929:1;4918:9;4914:17;4905:6;4861:71;:::i;:::-;4717:222;;;;:::o;4945:98::-;4996:6;5030:5;5024:12;5014:22;;4945:98;;;:::o;5049:147::-;5150:11;5187:3;5172:18;;5049:147;;;;:::o;5202:248::-;5284:1;5294:113;5308:6;5305:1;5302:13;5294:113;;;5393:1;5388:3;5384:11;5378:18;5374:1;5369:3;5365:11;5358:39;5330:2;5327:1;5323:10;5318:15;;5294:113;;;5441:1;5432:6;5427:3;5423:16;5416:27;5264:186;5202:248;;;:::o;5456:386::-;5560:3;5588:38;5620:5;5588:38;:::i;:::-;5642:88;5723:6;5718:3;5642:88;:::i;:::-;5635:95;;5739:65;5797:6;5792:3;5785:4;5778:5;5774:16;5739:65;:::i;:::-;5829:6;5824:3;5820:16;5813:23;;5564:278;5456:386;;;;:::o;5848:271::-;5978:3;6000:93;6089:3;6080:6;6000:93;:::i;:::-;5993:100;;6110:3;6103:10;;5848:271;;;;:::o" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProxyDeniedAdminAccess\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself. 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating the proxy admin cannot fallback to the target implementation. These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership. NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to fully implement transparency without decoding reverts caused by selector clashes between the proxy and the implementation. NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract. IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an undesirable state where the admin slot is different from the actual admin. WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"ProxyDeniedAdminAccess()\":[{\"details\":\"The proxy caller is the current admin, and can't fallback to the proxy target.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":\"TransparentUpgradeableProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol\":{\"keccak256\":\"0x371c3467dccfbb2ac03b0edb4fadaacb9ad382772cee7850a3e73f39a56d102c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3574f1cc3ff2cb985a1385949bd3c76888e8dcf59e6a770ccb15c79b145b39bb\",\"dweb:/ipfs/QmXZDrFibUAMqjoRrpKxV3ma5RR9YfJXZyMrLWJ3bix9gi\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xbc9babed4d136e6cc1e74354aa66538a234f3808645fbe30463b4a7b7d8ca789\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75fd9323b206da2a87924fca2ca996dbd04ae0963f79f66fb8a0ef94bf283a3d\",\"dweb:/ipfs/QmYSoLcvpq8gRo8doLP4nnB43UAT1D3KvfFJRDSD2y4nYu\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Address.sol": { + "Address": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "AddressInsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "FailedInnerCall", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ce6e59331aeaf77211f4afa0adcb6f9bac526b87bc9b5a75c3d95dd6032db05b64736f6c634300081c0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCE PUSH15 0x59331AEAF77211F4AFA0ADCB6F9BAC MSTORE PUSH12 0x87BC9B5A75C3D95DD6032DB0 JUMPDEST PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "195:6066:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ce6e59331aeaf77211f4afa0adcb6f9bac526b87bc9b5a75c3d95dd6032db05b64736f6c634300081c0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCE PUSH15 0x59331AEAF77211F4AFA0ADCB6F9BAC MSTORE PUSH12 0x87BC9B5A75C3D95DD6032DB0 JUMPDEST PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "195:6066:19:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Pausable.sol": { + "Pausable": { + "abi": [ + { + "inputs": [], + "name": "EnforcedPause", + "type": "error" + }, + { + "inputs": [], + "name": "ExpectedPause", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "paused()": "5c975abb" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 3428, + "contract": "@openzeppelin/contracts/utils/Pausable.sol:Pausable", + "label": "_paused", + "offset": 0, + "slot": "0", + "type": "t_bool" + } + ], + "types": { + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + } + } + } + } + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "StorageSlot": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206941e6903cb0a761aced930e2a305f130978c327cfb30c4e98e084098da5066c64736f6c634300081c0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH10 0x41E6903CB0A761ACED93 0xE 0x2A ADDRESS PUSH0 SGT MULMOD PUSH25 0xC327CFB30C4E98E084098DA5066C64736F6C634300081C0033 ", + "sourceMap": "1245:2685:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206941e6903cb0a761aced930e2a305f130978c327cfb30c4e98e084098da5066c64736f6c634300081c0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH10 0x41E6903CB0A761ACED93 0xE 0x2A ADDRESS PUSH0 SGT MULMOD PUSH25 0xC327CFB30C4E98E084098DA5066C64736F6C634300081C0033 ", + "sourceMap": "1245:2685:22:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ```\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "IERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "Math": { + "abi": [ + { + "inputs": [], + "name": "MathOverflowedMulDiv", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202231728641d294972cc33cc72ff3cfe63c5bbbe5d01018c7931da7b1eab7c4d964736f6c634300081c0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 BALANCE PUSH19 0x8641D294972CC33CC72FF3CFE63C5BBBE5D010 XOR 0xC7 SWAP4 SAR 0xA7 0xB1 0xEA 0xB7 0xC4 0xD9 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "203:14914:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202231728641d294972cc33cc72ff3cfe63c5bbbe5d01018c7931da7b1eab7c4d964736f6c634300081c0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 BALANCE PUSH19 0x8641D294972CC33CC72FF3CFE63C5BBBE5D010 XOR 0xC7 SWAP4 SAR 0xA7 0xB1 0xEA 0xB7 0xC4 0xD9 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "203:14914:25:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/math/SafeCast.sol": { + "SafeCast": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint8", + "name": "bits", + "type": "uint8" + }, + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "name": "SafeCastOverflowedIntDowncast", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "name": "SafeCastOverflowedIntToUint", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "bits", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeCastOverflowedUintDowncast", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeCastOverflowedUintToInt", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204b5c1b66575e6d0db8d8a1ce707136012735d12de55babce5d5a2133f22bf5b864736f6c634300081c0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B TLOAD SHL PUSH7 0x575E6D0DB8D8A1 0xCE PUSH17 0x7136012735D12DE55BABCE5D5A2133F22B CREATE2 0xB8 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "764:33927:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204b5c1b66575e6d0db8d8a1ce707136012735d12de55babce5d5a2133f22bf5b864736f6c634300081c0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B TLOAD SHL PUSH7 0x575E6D0DB8D8A1 0xCE PUSH17 0x7136012735D12DE55BABCE5D5A2133F22B CREATE2 0xB8 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "764:33927:26:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/DomainMangager/DomainManager.sol": { + "DomainManager": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "AccountIsNotDomainOwner", + "type": "error" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract ISciRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "registry()": "7b103999" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"AccountIsNotDomainOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ISciRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"Contract module that implement access control only to owners of a domain in the SCI Registry.\",\"errors\":{\"AccountIsNotDomainOwner(address,bytes32)\":[{\"details\":\"Thrown when the `account` is not the owner of the domainhash.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract with references to the SCI Registry.\",\"params\":{\"_sciRegistryAddress\":\"Address of the SCI Registry contract.\"}}},\"title\":\"DomainManager\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DomainMangager/DomainManager.sol\":\"DomainManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/DomainMangager/DomainManager.sol\":{\"keccak256\":\"0x2f6561beb24705ed75d5b62c52b89b94f2f83221e5ae2edc4bb73cae522c05fc\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b550be56d1243674f84c9ebec6d483b5b695032c1ce0e5a42aba69e4e1f464c1\",\"dweb:/ipfs/QmNx936U7GV6yaxsM2VfYMVA4P1ceLafseYzerkPws8ZDK\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/Registrars/EnsRegistrar.sol": { + "EnsRegistrar": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_ensRegistryAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_sciRegistryAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "AccountIsNotEnsOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ensRegistry", + "outputs": [ + { + "internalType": "contract ENS", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "registerDomain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + } + ], + "name": "registerDomainWithVerifier", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract ISciRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_6627": { + "entryPoint": null, + "id": 6627, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 239, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address_fromMemory": { + "entryPoint": 260, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 198, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 166, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 161, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 216, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1355:37", + "nodeType": "YulBlock", + "src": "0:1355:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "379:81:37", + "nodeType": "YulBlock", + "src": "379:81:37", + "statements": [ + { + "nativeSrc": "389:65:37", + "nodeType": "YulAssignment", + "src": "389:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "404:5:37", + "nodeType": "YulIdentifier", + "src": "404:5:37" + }, + { + "kind": "number", + "nativeSrc": "411:42:37", + "nodeType": "YulLiteral", + "src": "411:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "400:3:37", + "nodeType": "YulIdentifier", + "src": "400:3:37" + }, + "nativeSrc": "400:54:37", + "nodeType": "YulFunctionCall", + "src": "400:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:37", + "nodeType": "YulIdentifier", + "src": "389:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:37", + "nodeType": "YulTypedName", + "src": "361:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:37", + "nodeType": "YulTypedName", + "src": "371:7:37", + "type": "" + } + ], + "src": "334:126:37" + }, + { + "body": { + "nativeSrc": "511:51:37", + "nodeType": "YulBlock", + "src": "511:51:37", + "statements": [ + { + "nativeSrc": "521:35:37", + "nodeType": "YulAssignment", + "src": "521:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "550:5:37", + "nodeType": "YulIdentifier", + "src": "550:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:37", + "nodeType": "YulIdentifier", + "src": "532:17:37" + }, + "nativeSrc": "532:24:37", + "nodeType": "YulFunctionCall", + "src": "532:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:37", + "nodeType": "YulIdentifier", + "src": "521:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "466:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "493:5:37", + "nodeType": "YulTypedName", + "src": "493:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "503:7:37", + "nodeType": "YulTypedName", + "src": "503:7:37", + "type": "" + } + ], + "src": "466:96:37" + }, + { + "body": { + "nativeSrc": "611:79:37", + "nodeType": "YulBlock", + "src": "611:79:37", + "statements": [ + { + "body": { + "nativeSrc": "668:16:37", + "nodeType": "YulBlock", + "src": "668:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:37", + "nodeType": "YulLiteral", + "src": "677:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:37", + "nodeType": "YulLiteral", + "src": "680:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "670:6:37", + "nodeType": "YulIdentifier", + "src": "670:6:37" + }, + "nativeSrc": "670:12:37", + "nodeType": "YulFunctionCall", + "src": "670:12:37" + }, + "nativeSrc": "670:12:37", + "nodeType": "YulExpressionStatement", + "src": "670:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "634:5:37", + "nodeType": "YulIdentifier", + "src": "634:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:37", + "nodeType": "YulIdentifier", + "src": "659:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:37", + "nodeType": "YulIdentifier", + "src": "641:17:37" + }, + "nativeSrc": "641:24:37", + "nodeType": "YulFunctionCall", + "src": "641:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "631:2:37", + "nodeType": "YulIdentifier", + "src": "631:2:37" + }, + "nativeSrc": "631:35:37", + "nodeType": "YulFunctionCall", + "src": "631:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:37", + "nodeType": "YulIdentifier", + "src": "624:6:37" + }, + "nativeSrc": "624:43:37", + "nodeType": "YulFunctionCall", + "src": "624:43:37" + }, + "nativeSrc": "621:63:37", + "nodeType": "YulIf", + "src": "621:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:37", + "nodeType": "YulTypedName", + "src": "604:5:37", + "type": "" + } + ], + "src": "568:122:37" + }, + { + "body": { + "nativeSrc": "759:80:37", + "nodeType": "YulBlock", + "src": "759:80:37", + "statements": [ + { + "nativeSrc": "769:22:37", + "nodeType": "YulAssignment", + "src": "769:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "784:6:37", + "nodeType": "YulIdentifier", + "src": "784:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "778:5:37", + "nodeType": "YulIdentifier", + "src": "778:5:37" + }, + "nativeSrc": "778:13:37", + "nodeType": "YulFunctionCall", + "src": "778:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "769:5:37", + "nodeType": "YulIdentifier", + "src": "769:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "827:5:37", + "nodeType": "YulIdentifier", + "src": "827:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "800:26:37", + "nodeType": "YulIdentifier", + "src": "800:26:37" + }, + "nativeSrc": "800:33:37", + "nodeType": "YulFunctionCall", + "src": "800:33:37" + }, + "nativeSrc": "800:33:37", + "nodeType": "YulExpressionStatement", + "src": "800:33:37" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "696:143:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "737:6:37", + "nodeType": "YulTypedName", + "src": "737:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "745:3:37", + "nodeType": "YulTypedName", + "src": "745:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "753:5:37", + "nodeType": "YulTypedName", + "src": "753:5:37", + "type": "" + } + ], + "src": "696:143:37" + }, + { + "body": { + "nativeSrc": "939:413:37", + "nodeType": "YulBlock", + "src": "939:413:37", + "statements": [ + { + "body": { + "nativeSrc": "985:83:37", + "nodeType": "YulBlock", + "src": "985:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "987:77:37", + "nodeType": "YulIdentifier", + "src": "987:77:37" + }, + "nativeSrc": "987:79:37", + "nodeType": "YulFunctionCall", + "src": "987:79:37" + }, + "nativeSrc": "987:79:37", + "nodeType": "YulExpressionStatement", + "src": "987:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "960:7:37", + "nodeType": "YulIdentifier", + "src": "960:7:37" + }, + { + "name": "headStart", + "nativeSrc": "969:9:37", + "nodeType": "YulIdentifier", + "src": "969:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "956:3:37", + "nodeType": "YulIdentifier", + "src": "956:3:37" + }, + "nativeSrc": "956:23:37", + "nodeType": "YulFunctionCall", + "src": "956:23:37" + }, + { + "kind": "number", + "nativeSrc": "981:2:37", + "nodeType": "YulLiteral", + "src": "981:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "952:3:37", + "nodeType": "YulIdentifier", + "src": "952:3:37" + }, + "nativeSrc": "952:32:37", + "nodeType": "YulFunctionCall", + "src": "952:32:37" + }, + "nativeSrc": "949:119:37", + "nodeType": "YulIf", + "src": "949:119:37" + }, + { + "nativeSrc": "1078:128:37", + "nodeType": "YulBlock", + "src": "1078:128:37", + "statements": [ + { + "nativeSrc": "1093:15:37", + "nodeType": "YulVariableDeclaration", + "src": "1093:15:37", + "value": { + "kind": "number", + "nativeSrc": "1107:1:37", + "nodeType": "YulLiteral", + "src": "1107:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1097:6:37", + "nodeType": "YulTypedName", + "src": "1097:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1122:74:37", + "nodeType": "YulAssignment", + "src": "1122:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1168:9:37", + "nodeType": "YulIdentifier", + "src": "1168:9:37" + }, + { + "name": "offset", + "nativeSrc": "1179:6:37", + "nodeType": "YulIdentifier", + "src": "1179:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1164:3:37", + "nodeType": "YulIdentifier", + "src": "1164:3:37" + }, + "nativeSrc": "1164:22:37", + "nodeType": "YulFunctionCall", + "src": "1164:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1188:7:37", + "nodeType": "YulIdentifier", + "src": "1188:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "1132:31:37", + "nodeType": "YulIdentifier", + "src": "1132:31:37" + }, + "nativeSrc": "1132:64:37", + "nodeType": "YulFunctionCall", + "src": "1132:64:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1122:6:37", + "nodeType": "YulIdentifier", + "src": "1122:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "1216:129:37", + "nodeType": "YulBlock", + "src": "1216:129:37", + "statements": [ + { + "nativeSrc": "1231:16:37", + "nodeType": "YulVariableDeclaration", + "src": "1231:16:37", + "value": { + "kind": "number", + "nativeSrc": "1245:2:37", + "nodeType": "YulLiteral", + "src": "1245:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1235:6:37", + "nodeType": "YulTypedName", + "src": "1235:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1261:74:37", + "nodeType": "YulAssignment", + "src": "1261:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1307:9:37", + "nodeType": "YulIdentifier", + "src": "1307:9:37" + }, + { + "name": "offset", + "nativeSrc": "1318:6:37", + "nodeType": "YulIdentifier", + "src": "1318:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1303:3:37", + "nodeType": "YulIdentifier", + "src": "1303:3:37" + }, + "nativeSrc": "1303:22:37", + "nodeType": "YulFunctionCall", + "src": "1303:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1327:7:37", + "nodeType": "YulIdentifier", + "src": "1327:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "1271:31:37", + "nodeType": "YulIdentifier", + "src": "1271:31:37" + }, + "nativeSrc": "1271:64:37", + "nodeType": "YulFunctionCall", + "src": "1271:64:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1261:6:37", + "nodeType": "YulIdentifier", + "src": "1261:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address_fromMemory", + "nativeSrc": "845:507:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "901:9:37", + "nodeType": "YulTypedName", + "src": "901:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "912:7:37", + "nodeType": "YulTypedName", + "src": "912:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "924:6:37", + "nodeType": "YulTypedName", + "src": "924:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "932:6:37", + "nodeType": "YulTypedName", + "src": "932:6:37", + "type": "" + } + ], + "src": "845:507:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60c060405234801561001057600080fd5b5060405161082e38038061082e83398181016040528101906100329190610104565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250505050610144565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100d1826100a6565b9050919050565b6100e1816100c6565b81146100ec57600080fd5b50565b6000815190506100fe816100d8565b92915050565b6000806040838503121561011b5761011a6100a1565b5b6000610129858286016100ef565b925050602061013a858286016100ef565b9150509250929050565b60805160a0516106b161017d6000396000818160da0152818161017601526101ca01526000818161019a015261027c01526106b16000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634c7464cf146100515780637b1039991461006d5780637d73b2311461008b578063a8c00861146100a9575b600080fd5b61006b6004803603810190610066919061041d565b6100c5565b005b610075610174565b60405161008291906104bc565b60405180910390f35b610093610198565b6040516100a091906104f8565b60405180910390f35b6100c360048036038101906100be919061053f565b6101bc565b005b6100cd61025b565b826100d88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c61011c61025b565b86866040518463ffffffff1660e01b815260040161013c939291906105be565b600060405180830381600087803b15801561015657600080fd5b505af115801561016a573d6000803e3d6000fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016102239291906105f5565b600060405180830381600087803b15801561023d57600080fd5b505af1158015610251573d6000803e3d6000fd5b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102d3919061061e565b602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610314919061064e565b73ffffffffffffffffffffffffffffffffffffffff161461036e5781816040517f36b852100000000000000000000000000000000000000000000000000000000081526004016103659291906105f5565b60405180910390fd5b5050565b600080fd5b6000819050919050565b61038a81610377565b811461039557600080fd5b50565b6000813590506103a781610381565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103d8826103ad565b9050919050565b60006103ea826103cd565b9050919050565b6103fa816103df565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806040838503121561043457610433610372565b5b600061044285828601610398565b925050602061045385828601610408565b9150509250929050565b6000819050919050565b600061048261047d610478846103ad565b61045d565b6103ad565b9050919050565b600061049482610467565b9050919050565b60006104a682610489565b9050919050565b6104b68161049b565b82525050565b60006020820190506104d160008301846104ad565b92915050565b60006104e282610489565b9050919050565b6104f2816104d7565b82525050565b600060208201905061050d60008301846104e9565b92915050565b61051c816103cd565b811461052757600080fd5b50565b60008135905061053981610513565b92915050565b6000806040838503121561055657610555610372565b5b60006105648582860161052a565b925050602061057585828601610398565b9150509250929050565b610588816103cd565b82525050565b61059781610377565b82525050565b60006105a882610489565b9050919050565b6105b88161059d565b82525050565b60006060820190506105d3600083018661057f565b6105e0602083018561058e565b6105ed60408301846105af565b949350505050565b600060408201905061060a600083018561057f565b610617602083018461058e565b9392505050565b6000602082019050610633600083018461058e565b92915050565b60008151905061064881610513565b92915050565b60006020828403121561066457610663610372565b5b600061067284828501610639565b9150509291505056fea264697066735822122096923f830193a2148dfde33b2ab2564da99065f5ce19265207735a036e96890464736f6c634300081c0033", + "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x82E CODESIZE SUB DUP1 PUSH2 0x82E DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x104 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH2 0x144 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD1 DUP3 PUSH2 0xA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1 DUP2 PUSH2 0xC6 JUMP JUMPDEST DUP2 EQ PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xFE DUP2 PUSH2 0xD8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x11B JUMPI PUSH2 0x11A PUSH2 0xA1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x129 DUP6 DUP3 DUP7 ADD PUSH2 0xEF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x13A DUP6 DUP3 DUP7 ADD PUSH2 0xEF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x6B1 PUSH2 0x17D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0xDA ADD MSTORE DUP2 DUP2 PUSH2 0x176 ADD MSTORE PUSH2 0x1CA ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x19A ADD MSTORE PUSH2 0x27C ADD MSTORE PUSH2 0x6B1 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4C7464CF EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x7D73B231 EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0xA9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH2 0xC5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x75 PUSH2 0x174 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x4BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x93 PUSH2 0x198 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA0 SWAP2 SWAP1 PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x53F JUMP JUMPDEST PUSH2 0x1BC JUMP JUMPDEST STOP JUMPDEST PUSH2 0xCD PUSH2 0x25B JUMP JUMPDEST DUP3 PUSH2 0xD8 DUP3 DUP3 PUSH2 0x263 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD738E6C PUSH2 0x11C PUSH2 0x25B JUMP JUMPDEST DUP7 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5BE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST DUP2 DUP2 PUSH2 0x1C8 DUP3 DUP3 PUSH2 0x263 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA8C00861 DUP6 DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x223 SWAP3 SWAP2 SWAP1 PUSH2 0x5F5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x251 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2571BE3 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D3 SWAP2 SWAP1 PUSH2 0x61E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x64E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x36E JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x36B8521000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x365 SWAP3 SWAP2 SWAP1 PUSH2 0x5F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x38A DUP2 PUSH2 0x377 JUMP JUMPDEST DUP2 EQ PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3A7 DUP2 PUSH2 0x381 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D8 DUP3 PUSH2 0x3AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EA DUP3 PUSH2 0x3CD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FA DUP2 PUSH2 0x3DF JUMP JUMPDEST DUP2 EQ PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x417 DUP2 PUSH2 0x3F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x434 JUMPI PUSH2 0x433 PUSH2 0x372 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x442 DUP6 DUP3 DUP7 ADD PUSH2 0x398 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x453 DUP6 DUP3 DUP7 ADD PUSH2 0x408 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x482 PUSH2 0x47D PUSH2 0x478 DUP5 PUSH2 0x3AD JUMP JUMPDEST PUSH2 0x45D JUMP JUMPDEST PUSH2 0x3AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x494 DUP3 PUSH2 0x467 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A6 DUP3 PUSH2 0x489 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4B6 DUP2 PUSH2 0x49B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4D1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4AD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4E2 DUP3 PUSH2 0x489 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4F2 DUP2 PUSH2 0x4D7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x50D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4E9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x51C DUP2 PUSH2 0x3CD JUMP JUMPDEST DUP2 EQ PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x539 DUP2 PUSH2 0x513 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x556 JUMPI PUSH2 0x555 PUSH2 0x372 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x564 DUP6 DUP3 DUP7 ADD PUSH2 0x52A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x575 DUP6 DUP3 DUP7 ADD PUSH2 0x398 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x588 DUP2 PUSH2 0x3CD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x597 DUP2 PUSH2 0x377 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A8 DUP3 PUSH2 0x489 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5B8 DUP2 PUSH2 0x59D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x5D3 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x57F JUMP JUMPDEST PUSH2 0x5E0 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x5ED PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x5AF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x60A PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x57F JUMP JUMPDEST PUSH2 0x617 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x58E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x633 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x58E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x648 DUP2 PUSH2 0x513 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x664 JUMPI PUSH2 0x663 PUSH2 0x372 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x672 DUP5 DUP3 DUP6 ADD PUSH2 0x639 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP7 SWAP3 EXTCODEHASH DUP4 ADD SWAP4 LOG2 EQ DUP14 REVERT 0xE3 EXTCODESIZE 0x2A 0xB2 JUMP 0x4D 0xA9 SWAP1 PUSH6 0xF5CE19265207 PUSH20 0x5A036E96890464736F6C634300081C0033000000 ", + "sourceMap": "669:2681:30:-:0;;;1634:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1732:19;1714:38;;;;;;;;;;1786:19;1762:44;;;;;;;;;;1634:179;;669:2681;;88:117:37;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;669:2681:30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_checkEnsOwner_6693": { + "entryPoint": 611, + "id": 6693, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_3401": { + "entryPoint": 603, + "id": 3401, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ensRegistry_6582": { + "entryPoint": 408, + "id": 6582, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@registerDomainWithVerifier_6671": { + "entryPoint": 197, + "id": 6671, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@registerDomain_6647": { + "entryPoint": 444, + "id": 6647, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@registry_6585": { + "entryPoint": 372, + "id": 6585, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 1322, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 1593, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes32": { + "entryPoint": 920, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_contract$_IVerifier_$7453": { + "entryPoint": 1032, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 1614, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_bytes32": { + "entryPoint": 1343, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes32t_contract$_IVerifier_$7453": { + "entryPoint": 1053, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1407, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 1422, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_ENS_$136_to_t_address_fromStack": { + "entryPoint": 1257, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack": { + "entryPoint": 1197, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack": { + "entryPoint": 1455, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { + "entryPoint": 1525, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$7453__to_t_address_t_bytes32_t_address__fromStack_reversed": { + "entryPoint": 1470, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 1566, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_ENS_$136__to_t_address__fromStack_reversed": { + "entryPoint": 1272, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed": { + "entryPoint": 1212, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 973, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 887, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_contract$_IVerifier_$7453": { + "entryPoint": 991, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 941, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_ENS_$136_to_t_address": { + "entryPoint": 1239, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_ISciRegistry_$7088_to_t_address": { + "entryPoint": 1179, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_IVerifier_$7453_to_t_address": { + "entryPoint": 1437, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 1161, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 1127, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 1117, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 882, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 1299, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 897, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_contract$_IVerifier_$7453": { + "entryPoint": 1009, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:6282:37", + "nodeType": "YulBlock", + "src": "0:6282:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "379:32:37", + "nodeType": "YulBlock", + "src": "379:32:37", + "statements": [ + { + "nativeSrc": "389:16:37", + "nodeType": "YulAssignment", + "src": "389:16:37", + "value": { + "name": "value", + "nativeSrc": "400:5:37", + "nodeType": "YulIdentifier", + "src": "400:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:37", + "nodeType": "YulIdentifier", + "src": "389:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "334:77:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:37", + "nodeType": "YulTypedName", + "src": "361:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:37", + "nodeType": "YulTypedName", + "src": "371:7:37", + "type": "" + } + ], + "src": "334:77:37" + }, + { + "body": { + "nativeSrc": "460:79:37", + "nodeType": "YulBlock", + "src": "460:79:37", + "statements": [ + { + "body": { + "nativeSrc": "517:16:37", + "nodeType": "YulBlock", + "src": "517:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "526:1:37", + "nodeType": "YulLiteral", + "src": "526:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "529:1:37", + "nodeType": "YulLiteral", + "src": "529:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "519:6:37", + "nodeType": "YulIdentifier", + "src": "519:6:37" + }, + "nativeSrc": "519:12:37", + "nodeType": "YulFunctionCall", + "src": "519:12:37" + }, + "nativeSrc": "519:12:37", + "nodeType": "YulExpressionStatement", + "src": "519:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "483:5:37", + "nodeType": "YulIdentifier", + "src": "483:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "508:5:37", + "nodeType": "YulIdentifier", + "src": "508:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "490:17:37", + "nodeType": "YulIdentifier", + "src": "490:17:37" + }, + "nativeSrc": "490:24:37", + "nodeType": "YulFunctionCall", + "src": "490:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "480:2:37", + "nodeType": "YulIdentifier", + "src": "480:2:37" + }, + "nativeSrc": "480:35:37", + "nodeType": "YulFunctionCall", + "src": "480:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "473:6:37", + "nodeType": "YulIdentifier", + "src": "473:6:37" + }, + "nativeSrc": "473:43:37", + "nodeType": "YulFunctionCall", + "src": "473:43:37" + }, + "nativeSrc": "470:63:37", + "nodeType": "YulIf", + "src": "470:63:37" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nativeSrc": "417:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "453:5:37", + "nodeType": "YulTypedName", + "src": "453:5:37", + "type": "" + } + ], + "src": "417:122:37" + }, + { + "body": { + "nativeSrc": "597:87:37", + "nodeType": "YulBlock", + "src": "597:87:37", + "statements": [ + { + "nativeSrc": "607:29:37", + "nodeType": "YulAssignment", + "src": "607:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "629:6:37", + "nodeType": "YulIdentifier", + "src": "629:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "616:12:37", + "nodeType": "YulIdentifier", + "src": "616:12:37" + }, + "nativeSrc": "616:20:37", + "nodeType": "YulFunctionCall", + "src": "616:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "607:5:37", + "nodeType": "YulIdentifier", + "src": "607:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "672:5:37", + "nodeType": "YulIdentifier", + "src": "672:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nativeSrc": "645:26:37", + "nodeType": "YulIdentifier", + "src": "645:26:37" + }, + "nativeSrc": "645:33:37", + "nodeType": "YulFunctionCall", + "src": "645:33:37" + }, + "nativeSrc": "645:33:37", + "nodeType": "YulExpressionStatement", + "src": "645:33:37" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nativeSrc": "545:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "575:6:37", + "nodeType": "YulTypedName", + "src": "575:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "583:3:37", + "nodeType": "YulTypedName", + "src": "583:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "591:5:37", + "nodeType": "YulTypedName", + "src": "591:5:37", + "type": "" + } + ], + "src": "545:139:37" + }, + { + "body": { + "nativeSrc": "735:81:37", + "nodeType": "YulBlock", + "src": "735:81:37", + "statements": [ + { + "nativeSrc": "745:65:37", + "nodeType": "YulAssignment", + "src": "745:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "760:5:37", + "nodeType": "YulIdentifier", + "src": "760:5:37" + }, + { + "kind": "number", + "nativeSrc": "767:42:37", + "nodeType": "YulLiteral", + "src": "767:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "756:3:37", + "nodeType": "YulIdentifier", + "src": "756:3:37" + }, + "nativeSrc": "756:54:37", + "nodeType": "YulFunctionCall", + "src": "756:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "745:7:37", + "nodeType": "YulIdentifier", + "src": "745:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "690:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "717:5:37", + "nodeType": "YulTypedName", + "src": "717:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "727:7:37", + "nodeType": "YulTypedName", + "src": "727:7:37", + "type": "" + } + ], + "src": "690:126:37" + }, + { + "body": { + "nativeSrc": "867:51:37", + "nodeType": "YulBlock", + "src": "867:51:37", + "statements": [ + { + "nativeSrc": "877:35:37", + "nodeType": "YulAssignment", + "src": "877:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "906:5:37", + "nodeType": "YulIdentifier", + "src": "906:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "888:17:37", + "nodeType": "YulIdentifier", + "src": "888:17:37" + }, + "nativeSrc": "888:24:37", + "nodeType": "YulFunctionCall", + "src": "888:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "877:7:37", + "nodeType": "YulIdentifier", + "src": "877:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "822:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "849:5:37", + "nodeType": "YulTypedName", + "src": "849:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "859:7:37", + "nodeType": "YulTypedName", + "src": "859:7:37", + "type": "" + } + ], + "src": "822:96:37" + }, + { + "body": { + "nativeSrc": "987:51:37", + "nodeType": "YulBlock", + "src": "987:51:37", + "statements": [ + { + "nativeSrc": "997:35:37", + "nodeType": "YulAssignment", + "src": "997:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1026:5:37", + "nodeType": "YulIdentifier", + "src": "1026:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1008:17:37", + "nodeType": "YulIdentifier", + "src": "1008:17:37" + }, + "nativeSrc": "1008:24:37", + "nodeType": "YulFunctionCall", + "src": "1008:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "997:7:37", + "nodeType": "YulIdentifier", + "src": "997:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_contract$_IVerifier_$7453", + "nativeSrc": "924:114:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "969:5:37", + "nodeType": "YulTypedName", + "src": "969:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "979:7:37", + "nodeType": "YulTypedName", + "src": "979:7:37", + "type": "" + } + ], + "src": "924:114:37" + }, + { + "body": { + "nativeSrc": "1105:97:37", + "nodeType": "YulBlock", + "src": "1105:97:37", + "statements": [ + { + "body": { + "nativeSrc": "1180:16:37", + "nodeType": "YulBlock", + "src": "1180:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1189:1:37", + "nodeType": "YulLiteral", + "src": "1189:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1192:1:37", + "nodeType": "YulLiteral", + "src": "1192:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1182:6:37", + "nodeType": "YulIdentifier", + "src": "1182:6:37" + }, + "nativeSrc": "1182:12:37", + "nodeType": "YulFunctionCall", + "src": "1182:12:37" + }, + "nativeSrc": "1182:12:37", + "nodeType": "YulExpressionStatement", + "src": "1182:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1128:5:37", + "nodeType": "YulIdentifier", + "src": "1128:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1171:5:37", + "nodeType": "YulIdentifier", + "src": "1171:5:37" + } + ], + "functionName": { + "name": "cleanup_t_contract$_IVerifier_$7453", + "nativeSrc": "1135:35:37", + "nodeType": "YulIdentifier", + "src": "1135:35:37" + }, + "nativeSrc": "1135:42:37", + "nodeType": "YulFunctionCall", + "src": "1135:42:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1125:2:37", + "nodeType": "YulIdentifier", + "src": "1125:2:37" + }, + "nativeSrc": "1125:53:37", + "nodeType": "YulFunctionCall", + "src": "1125:53:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1118:6:37", + "nodeType": "YulIdentifier", + "src": "1118:6:37" + }, + "nativeSrc": "1118:61:37", + "nodeType": "YulFunctionCall", + "src": "1118:61:37" + }, + "nativeSrc": "1115:81:37", + "nodeType": "YulIf", + "src": "1115:81:37" + } + ] + }, + "name": "validator_revert_t_contract$_IVerifier_$7453", + "nativeSrc": "1044:158:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1098:5:37", + "nodeType": "YulTypedName", + "src": "1098:5:37", + "type": "" + } + ], + "src": "1044:158:37" + }, + { + "body": { + "nativeSrc": "1278:105:37", + "nodeType": "YulBlock", + "src": "1278:105:37", + "statements": [ + { + "nativeSrc": "1288:29:37", + "nodeType": "YulAssignment", + "src": "1288:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1310:6:37", + "nodeType": "YulIdentifier", + "src": "1310:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1297:12:37", + "nodeType": "YulIdentifier", + "src": "1297:12:37" + }, + "nativeSrc": "1297:20:37", + "nodeType": "YulFunctionCall", + "src": "1297:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1288:5:37", + "nodeType": "YulIdentifier", + "src": "1288:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1371:5:37", + "nodeType": "YulIdentifier", + "src": "1371:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_contract$_IVerifier_$7453", + "nativeSrc": "1326:44:37", + "nodeType": "YulIdentifier", + "src": "1326:44:37" + }, + "nativeSrc": "1326:51:37", + "nodeType": "YulFunctionCall", + "src": "1326:51:37" + }, + "nativeSrc": "1326:51:37", + "nodeType": "YulExpressionStatement", + "src": "1326:51:37" + } + ] + }, + "name": "abi_decode_t_contract$_IVerifier_$7453", + "nativeSrc": "1208:175:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1256:6:37", + "nodeType": "YulTypedName", + "src": "1256:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1264:3:37", + "nodeType": "YulTypedName", + "src": "1264:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1272:5:37", + "nodeType": "YulTypedName", + "src": "1272:5:37", + "type": "" + } + ], + "src": "1208:175:37" + }, + { + "body": { + "nativeSrc": "1490:409:37", + "nodeType": "YulBlock", + "src": "1490:409:37", + "statements": [ + { + "body": { + "nativeSrc": "1536:83:37", + "nodeType": "YulBlock", + "src": "1536:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1538:77:37", + "nodeType": "YulIdentifier", + "src": "1538:77:37" + }, + "nativeSrc": "1538:79:37", + "nodeType": "YulFunctionCall", + "src": "1538:79:37" + }, + "nativeSrc": "1538:79:37", + "nodeType": "YulExpressionStatement", + "src": "1538:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1511:7:37", + "nodeType": "YulIdentifier", + "src": "1511:7:37" + }, + { + "name": "headStart", + "nativeSrc": "1520:9:37", + "nodeType": "YulIdentifier", + "src": "1520:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1507:3:37", + "nodeType": "YulIdentifier", + "src": "1507:3:37" + }, + "nativeSrc": "1507:23:37", + "nodeType": "YulFunctionCall", + "src": "1507:23:37" + }, + { + "kind": "number", + "nativeSrc": "1532:2:37", + "nodeType": "YulLiteral", + "src": "1532:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1503:3:37", + "nodeType": "YulIdentifier", + "src": "1503:3:37" + }, + "nativeSrc": "1503:32:37", + "nodeType": "YulFunctionCall", + "src": "1503:32:37" + }, + "nativeSrc": "1500:119:37", + "nodeType": "YulIf", + "src": "1500:119:37" + }, + { + "nativeSrc": "1629:117:37", + "nodeType": "YulBlock", + "src": "1629:117:37", + "statements": [ + { + "nativeSrc": "1644:15:37", + "nodeType": "YulVariableDeclaration", + "src": "1644:15:37", + "value": { + "kind": "number", + "nativeSrc": "1658:1:37", + "nodeType": "YulLiteral", + "src": "1658:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1648:6:37", + "nodeType": "YulTypedName", + "src": "1648:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1673:63:37", + "nodeType": "YulAssignment", + "src": "1673:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1708:9:37", + "nodeType": "YulIdentifier", + "src": "1708:9:37" + }, + { + "name": "offset", + "nativeSrc": "1719:6:37", + "nodeType": "YulIdentifier", + "src": "1719:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1704:3:37", + "nodeType": "YulIdentifier", + "src": "1704:3:37" + }, + "nativeSrc": "1704:22:37", + "nodeType": "YulFunctionCall", + "src": "1704:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1728:7:37", + "nodeType": "YulIdentifier", + "src": "1728:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "1683:20:37", + "nodeType": "YulIdentifier", + "src": "1683:20:37" + }, + "nativeSrc": "1683:53:37", + "nodeType": "YulFunctionCall", + "src": "1683:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1673:6:37", + "nodeType": "YulIdentifier", + "src": "1673:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "1756:136:37", + "nodeType": "YulBlock", + "src": "1756:136:37", + "statements": [ + { + "nativeSrc": "1771:16:37", + "nodeType": "YulVariableDeclaration", + "src": "1771:16:37", + "value": { + "kind": "number", + "nativeSrc": "1785:2:37", + "nodeType": "YulLiteral", + "src": "1785:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1775:6:37", + "nodeType": "YulTypedName", + "src": "1775:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1801:81:37", + "nodeType": "YulAssignment", + "src": "1801:81:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1854:9:37", + "nodeType": "YulIdentifier", + "src": "1854:9:37" + }, + { + "name": "offset", + "nativeSrc": "1865:6:37", + "nodeType": "YulIdentifier", + "src": "1865:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1850:3:37", + "nodeType": "YulIdentifier", + "src": "1850:3:37" + }, + "nativeSrc": "1850:22:37", + "nodeType": "YulFunctionCall", + "src": "1850:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1874:7:37", + "nodeType": "YulIdentifier", + "src": "1874:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IVerifier_$7453", + "nativeSrc": "1811:38:37", + "nodeType": "YulIdentifier", + "src": "1811:38:37" + }, + "nativeSrc": "1811:71:37", + "nodeType": "YulFunctionCall", + "src": "1811:71:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1801:6:37", + "nodeType": "YulIdentifier", + "src": "1801:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_contract$_IVerifier_$7453", + "nativeSrc": "1389:510:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1452:9:37", + "nodeType": "YulTypedName", + "src": "1452:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1463:7:37", + "nodeType": "YulTypedName", + "src": "1463:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1475:6:37", + "nodeType": "YulTypedName", + "src": "1475:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1483:6:37", + "nodeType": "YulTypedName", + "src": "1483:6:37", + "type": "" + } + ], + "src": "1389:510:37" + }, + { + "body": { + "nativeSrc": "1937:28:37", + "nodeType": "YulBlock", + "src": "1937:28:37", + "statements": [ + { + "nativeSrc": "1947:12:37", + "nodeType": "YulAssignment", + "src": "1947:12:37", + "value": { + "name": "value", + "nativeSrc": "1954:5:37", + "nodeType": "YulIdentifier", + "src": "1954:5:37" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "1947:3:37", + "nodeType": "YulIdentifier", + "src": "1947:3:37" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "1905:60:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1923:5:37", + "nodeType": "YulTypedName", + "src": "1923:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "1933:3:37", + "nodeType": "YulTypedName", + "src": "1933:3:37", + "type": "" + } + ], + "src": "1905:60:37" + }, + { + "body": { + "nativeSrc": "2031:82:37", + "nodeType": "YulBlock", + "src": "2031:82:37", + "statements": [ + { + "nativeSrc": "2041:66:37", + "nodeType": "YulAssignment", + "src": "2041:66:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2099:5:37", + "nodeType": "YulIdentifier", + "src": "2099:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "2081:17:37", + "nodeType": "YulIdentifier", + "src": "2081:17:37" + }, + "nativeSrc": "2081:24:37", + "nodeType": "YulFunctionCall", + "src": "2081:24:37" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "2072:8:37", + "nodeType": "YulIdentifier", + "src": "2072:8:37" + }, + "nativeSrc": "2072:34:37", + "nodeType": "YulFunctionCall", + "src": "2072:34:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "2054:17:37", + "nodeType": "YulIdentifier", + "src": "2054:17:37" + }, + "nativeSrc": "2054:53:37", + "nodeType": "YulFunctionCall", + "src": "2054:53:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "2041:9:37", + "nodeType": "YulIdentifier", + "src": "2041:9:37" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "1971:142:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2011:5:37", + "nodeType": "YulTypedName", + "src": "2011:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "2021:9:37", + "nodeType": "YulTypedName", + "src": "2021:9:37", + "type": "" + } + ], + "src": "1971:142:37" + }, + { + "body": { + "nativeSrc": "2179:66:37", + "nodeType": "YulBlock", + "src": "2179:66:37", + "statements": [ + { + "nativeSrc": "2189:50:37", + "nodeType": "YulAssignment", + "src": "2189:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2233:5:37", + "nodeType": "YulIdentifier", + "src": "2233:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "2202:30:37", + "nodeType": "YulIdentifier", + "src": "2202:30:37" + }, + "nativeSrc": "2202:37:37", + "nodeType": "YulFunctionCall", + "src": "2202:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "2189:9:37", + "nodeType": "YulIdentifier", + "src": "2189:9:37" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "2119:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2159:5:37", + "nodeType": "YulTypedName", + "src": "2159:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "2169:9:37", + "nodeType": "YulTypedName", + "src": "2169:9:37", + "type": "" + } + ], + "src": "2119:126:37" + }, + { + "body": { + "nativeSrc": "2332:66:37", + "nodeType": "YulBlock", + "src": "2332:66:37", + "statements": [ + { + "nativeSrc": "2342:50:37", + "nodeType": "YulAssignment", + "src": "2342:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2386:5:37", + "nodeType": "YulIdentifier", + "src": "2386:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "2355:30:37", + "nodeType": "YulIdentifier", + "src": "2355:30:37" + }, + "nativeSrc": "2355:37:37", + "nodeType": "YulFunctionCall", + "src": "2355:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "2342:9:37", + "nodeType": "YulIdentifier", + "src": "2342:9:37" + } + ] + } + ] + }, + "name": "convert_t_contract$_ISciRegistry_$7088_to_t_address", + "nativeSrc": "2251:147:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2312:5:37", + "nodeType": "YulTypedName", + "src": "2312:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "2322:9:37", + "nodeType": "YulTypedName", + "src": "2322:9:37", + "type": "" + } + ], + "src": "2251:147:37" + }, + { + "body": { + "nativeSrc": "2490:87:37", + "nodeType": "YulBlock", + "src": "2490:87:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2507:3:37", + "nodeType": "YulIdentifier", + "src": "2507:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2564:5:37", + "nodeType": "YulIdentifier", + "src": "2564:5:37" + } + ], + "functionName": { + "name": "convert_t_contract$_ISciRegistry_$7088_to_t_address", + "nativeSrc": "2512:51:37", + "nodeType": "YulIdentifier", + "src": "2512:51:37" + }, + "nativeSrc": "2512:58:37", + "nodeType": "YulFunctionCall", + "src": "2512:58:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2500:6:37", + "nodeType": "YulIdentifier", + "src": "2500:6:37" + }, + "nativeSrc": "2500:71:37", + "nodeType": "YulFunctionCall", + "src": "2500:71:37" + }, + "nativeSrc": "2500:71:37", + "nodeType": "YulExpressionStatement", + "src": "2500:71:37" + } + ] + }, + "name": "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack", + "nativeSrc": "2404:173:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2478:5:37", + "nodeType": "YulTypedName", + "src": "2478:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2485:3:37", + "nodeType": "YulTypedName", + "src": "2485:3:37", + "type": "" + } + ], + "src": "2404:173:37" + }, + { + "body": { + "nativeSrc": "2702:145:37", + "nodeType": "YulBlock", + "src": "2702:145:37", + "statements": [ + { + "nativeSrc": "2712:26:37", + "nodeType": "YulAssignment", + "src": "2712:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2724:9:37", + "nodeType": "YulIdentifier", + "src": "2724:9:37" + }, + { + "kind": "number", + "nativeSrc": "2735:2:37", + "nodeType": "YulLiteral", + "src": "2735:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2720:3:37", + "nodeType": "YulIdentifier", + "src": "2720:3:37" + }, + "nativeSrc": "2720:18:37", + "nodeType": "YulFunctionCall", + "src": "2720:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2712:4:37", + "nodeType": "YulIdentifier", + "src": "2712:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2813:6:37", + "nodeType": "YulIdentifier", + "src": "2813:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2826:9:37", + "nodeType": "YulIdentifier", + "src": "2826:9:37" + }, + { + "kind": "number", + "nativeSrc": "2837:1:37", + "nodeType": "YulLiteral", + "src": "2837:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2822:3:37", + "nodeType": "YulIdentifier", + "src": "2822:3:37" + }, + "nativeSrc": "2822:17:37", + "nodeType": "YulFunctionCall", + "src": "2822:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack", + "nativeSrc": "2748:64:37", + "nodeType": "YulIdentifier", + "src": "2748:64:37" + }, + "nativeSrc": "2748:92:37", + "nodeType": "YulFunctionCall", + "src": "2748:92:37" + }, + "nativeSrc": "2748:92:37", + "nodeType": "YulExpressionStatement", + "src": "2748:92:37" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed", + "nativeSrc": "2583:264:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2674:9:37", + "nodeType": "YulTypedName", + "src": "2674:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2686:6:37", + "nodeType": "YulTypedName", + "src": "2686:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2697:4:37", + "nodeType": "YulTypedName", + "src": "2697:4:37", + "type": "" + } + ], + "src": "2583:264:37" + }, + { + "body": { + "nativeSrc": "2924:66:37", + "nodeType": "YulBlock", + "src": "2924:66:37", + "statements": [ + { + "nativeSrc": "2934:50:37", + "nodeType": "YulAssignment", + "src": "2934:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2978:5:37", + "nodeType": "YulIdentifier", + "src": "2978:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "2947:30:37", + "nodeType": "YulIdentifier", + "src": "2947:30:37" + }, + "nativeSrc": "2947:37:37", + "nodeType": "YulFunctionCall", + "src": "2947:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "2934:9:37", + "nodeType": "YulIdentifier", + "src": "2934:9:37" + } + ] + } + ] + }, + "name": "convert_t_contract$_ENS_$136_to_t_address", + "nativeSrc": "2853:137:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2904:5:37", + "nodeType": "YulTypedName", + "src": "2904:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "2914:9:37", + "nodeType": "YulTypedName", + "src": "2914:9:37", + "type": "" + } + ], + "src": "2853:137:37" + }, + { + "body": { + "nativeSrc": "3072:77:37", + "nodeType": "YulBlock", + "src": "3072:77:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3089:3:37", + "nodeType": "YulIdentifier", + "src": "3089:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3136:5:37", + "nodeType": "YulIdentifier", + "src": "3136:5:37" + } + ], + "functionName": { + "name": "convert_t_contract$_ENS_$136_to_t_address", + "nativeSrc": "3094:41:37", + "nodeType": "YulIdentifier", + "src": "3094:41:37" + }, + "nativeSrc": "3094:48:37", + "nodeType": "YulFunctionCall", + "src": "3094:48:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3082:6:37", + "nodeType": "YulIdentifier", + "src": "3082:6:37" + }, + "nativeSrc": "3082:61:37", + "nodeType": "YulFunctionCall", + "src": "3082:61:37" + }, + "nativeSrc": "3082:61:37", + "nodeType": "YulExpressionStatement", + "src": "3082:61:37" + } + ] + }, + "name": "abi_encode_t_contract$_ENS_$136_to_t_address_fromStack", + "nativeSrc": "2996:153:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3060:5:37", + "nodeType": "YulTypedName", + "src": "3060:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3067:3:37", + "nodeType": "YulTypedName", + "src": "3067:3:37", + "type": "" + } + ], + "src": "2996:153:37" + }, + { + "body": { + "nativeSrc": "3264:135:37", + "nodeType": "YulBlock", + "src": "3264:135:37", + "statements": [ + { + "nativeSrc": "3274:26:37", + "nodeType": "YulAssignment", + "src": "3274:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3286:9:37", + "nodeType": "YulIdentifier", + "src": "3286:9:37" + }, + { + "kind": "number", + "nativeSrc": "3297:2:37", + "nodeType": "YulLiteral", + "src": "3297:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3282:3:37", + "nodeType": "YulIdentifier", + "src": "3282:3:37" + }, + "nativeSrc": "3282:18:37", + "nodeType": "YulFunctionCall", + "src": "3282:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3274:4:37", + "nodeType": "YulIdentifier", + "src": "3274:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3365:6:37", + "nodeType": "YulIdentifier", + "src": "3365:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3378:9:37", + "nodeType": "YulIdentifier", + "src": "3378:9:37" + }, + { + "kind": "number", + "nativeSrc": "3389:1:37", + "nodeType": "YulLiteral", + "src": "3389:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3374:3:37", + "nodeType": "YulIdentifier", + "src": "3374:3:37" + }, + "nativeSrc": "3374:17:37", + "nodeType": "YulFunctionCall", + "src": "3374:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_ENS_$136_to_t_address_fromStack", + "nativeSrc": "3310:54:37", + "nodeType": "YulIdentifier", + "src": "3310:54:37" + }, + "nativeSrc": "3310:82:37", + "nodeType": "YulFunctionCall", + "src": "3310:82:37" + }, + "nativeSrc": "3310:82:37", + "nodeType": "YulExpressionStatement", + "src": "3310:82:37" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_ENS_$136__to_t_address__fromStack_reversed", + "nativeSrc": "3155:244:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3236:9:37", + "nodeType": "YulTypedName", + "src": "3236:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3248:6:37", + "nodeType": "YulTypedName", + "src": "3248:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3259:4:37", + "nodeType": "YulTypedName", + "src": "3259:4:37", + "type": "" + } + ], + "src": "3155:244:37" + }, + { + "body": { + "nativeSrc": "3448:79:37", + "nodeType": "YulBlock", + "src": "3448:79:37", + "statements": [ + { + "body": { + "nativeSrc": "3505:16:37", + "nodeType": "YulBlock", + "src": "3505:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3514:1:37", + "nodeType": "YulLiteral", + "src": "3514:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3517:1:37", + "nodeType": "YulLiteral", + "src": "3517:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3507:6:37", + "nodeType": "YulIdentifier", + "src": "3507:6:37" + }, + "nativeSrc": "3507:12:37", + "nodeType": "YulFunctionCall", + "src": "3507:12:37" + }, + "nativeSrc": "3507:12:37", + "nodeType": "YulExpressionStatement", + "src": "3507:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3471:5:37", + "nodeType": "YulIdentifier", + "src": "3471:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3496:5:37", + "nodeType": "YulIdentifier", + "src": "3496:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "3478:17:37", + "nodeType": "YulIdentifier", + "src": "3478:17:37" + }, + "nativeSrc": "3478:24:37", + "nodeType": "YulFunctionCall", + "src": "3478:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3468:2:37", + "nodeType": "YulIdentifier", + "src": "3468:2:37" + }, + "nativeSrc": "3468:35:37", + "nodeType": "YulFunctionCall", + "src": "3468:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3461:6:37", + "nodeType": "YulIdentifier", + "src": "3461:6:37" + }, + "nativeSrc": "3461:43:37", + "nodeType": "YulFunctionCall", + "src": "3461:43:37" + }, + "nativeSrc": "3458:63:37", + "nodeType": "YulIf", + "src": "3458:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "3405:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3441:5:37", + "nodeType": "YulTypedName", + "src": "3441:5:37", + "type": "" + } + ], + "src": "3405:122:37" + }, + { + "body": { + "nativeSrc": "3585:87:37", + "nodeType": "YulBlock", + "src": "3585:87:37", + "statements": [ + { + "nativeSrc": "3595:29:37", + "nodeType": "YulAssignment", + "src": "3595:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3617:6:37", + "nodeType": "YulIdentifier", + "src": "3617:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3604:12:37", + "nodeType": "YulIdentifier", + "src": "3604:12:37" + }, + "nativeSrc": "3604:20:37", + "nodeType": "YulFunctionCall", + "src": "3604:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3595:5:37", + "nodeType": "YulIdentifier", + "src": "3595:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3660:5:37", + "nodeType": "YulIdentifier", + "src": "3660:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "3633:26:37", + "nodeType": "YulIdentifier", + "src": "3633:26:37" + }, + "nativeSrc": "3633:33:37", + "nodeType": "YulFunctionCall", + "src": "3633:33:37" + }, + "nativeSrc": "3633:33:37", + "nodeType": "YulExpressionStatement", + "src": "3633:33:37" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "3533:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3563:6:37", + "nodeType": "YulTypedName", + "src": "3563:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3571:3:37", + "nodeType": "YulTypedName", + "src": "3571:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3579:5:37", + "nodeType": "YulTypedName", + "src": "3579:5:37", + "type": "" + } + ], + "src": "3533:139:37" + }, + { + "body": { + "nativeSrc": "3761:391:37", + "nodeType": "YulBlock", + "src": "3761:391:37", + "statements": [ + { + "body": { + "nativeSrc": "3807:83:37", + "nodeType": "YulBlock", + "src": "3807:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3809:77:37", + "nodeType": "YulIdentifier", + "src": "3809:77:37" + }, + "nativeSrc": "3809:79:37", + "nodeType": "YulFunctionCall", + "src": "3809:79:37" + }, + "nativeSrc": "3809:79:37", + "nodeType": "YulExpressionStatement", + "src": "3809:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3782:7:37", + "nodeType": "YulIdentifier", + "src": "3782:7:37" + }, + { + "name": "headStart", + "nativeSrc": "3791:9:37", + "nodeType": "YulIdentifier", + "src": "3791:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3778:3:37", + "nodeType": "YulIdentifier", + "src": "3778:3:37" + }, + "nativeSrc": "3778:23:37", + "nodeType": "YulFunctionCall", + "src": "3778:23:37" + }, + { + "kind": "number", + "nativeSrc": "3803:2:37", + "nodeType": "YulLiteral", + "src": "3803:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3774:3:37", + "nodeType": "YulIdentifier", + "src": "3774:3:37" + }, + "nativeSrc": "3774:32:37", + "nodeType": "YulFunctionCall", + "src": "3774:32:37" + }, + "nativeSrc": "3771:119:37", + "nodeType": "YulIf", + "src": "3771:119:37" + }, + { + "nativeSrc": "3900:117:37", + "nodeType": "YulBlock", + "src": "3900:117:37", + "statements": [ + { + "nativeSrc": "3915:15:37", + "nodeType": "YulVariableDeclaration", + "src": "3915:15:37", + "value": { + "kind": "number", + "nativeSrc": "3929:1:37", + "nodeType": "YulLiteral", + "src": "3929:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3919:6:37", + "nodeType": "YulTypedName", + "src": "3919:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3944:63:37", + "nodeType": "YulAssignment", + "src": "3944:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3979:9:37", + "nodeType": "YulIdentifier", + "src": "3979:9:37" + }, + { + "name": "offset", + "nativeSrc": "3990:6:37", + "nodeType": "YulIdentifier", + "src": "3990:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3975:3:37", + "nodeType": "YulIdentifier", + "src": "3975:3:37" + }, + "nativeSrc": "3975:22:37", + "nodeType": "YulFunctionCall", + "src": "3975:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3999:7:37", + "nodeType": "YulIdentifier", + "src": "3999:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "3954:20:37", + "nodeType": "YulIdentifier", + "src": "3954:20:37" + }, + "nativeSrc": "3954:53:37", + "nodeType": "YulFunctionCall", + "src": "3954:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3944:6:37", + "nodeType": "YulIdentifier", + "src": "3944:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "4027:118:37", + "nodeType": "YulBlock", + "src": "4027:118:37", + "statements": [ + { + "nativeSrc": "4042:16:37", + "nodeType": "YulVariableDeclaration", + "src": "4042:16:37", + "value": { + "kind": "number", + "nativeSrc": "4056:2:37", + "nodeType": "YulLiteral", + "src": "4056:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4046:6:37", + "nodeType": "YulTypedName", + "src": "4046:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "4072:63:37", + "nodeType": "YulAssignment", + "src": "4072:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4107:9:37", + "nodeType": "YulIdentifier", + "src": "4107:9:37" + }, + { + "name": "offset", + "nativeSrc": "4118:6:37", + "nodeType": "YulIdentifier", + "src": "4118:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4103:3:37", + "nodeType": "YulIdentifier", + "src": "4103:3:37" + }, + "nativeSrc": "4103:22:37", + "nodeType": "YulFunctionCall", + "src": "4103:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4127:7:37", + "nodeType": "YulIdentifier", + "src": "4127:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "4082:20:37", + "nodeType": "YulIdentifier", + "src": "4082:20:37" + }, + "nativeSrc": "4082:53:37", + "nodeType": "YulFunctionCall", + "src": "4082:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4072:6:37", + "nodeType": "YulIdentifier", + "src": "4072:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bytes32", + "nativeSrc": "3678:474:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3723:9:37", + "nodeType": "YulTypedName", + "src": "3723:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3734:7:37", + "nodeType": "YulTypedName", + "src": "3734:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3746:6:37", + "nodeType": "YulTypedName", + "src": "3746:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3754:6:37", + "nodeType": "YulTypedName", + "src": "3754:6:37", + "type": "" + } + ], + "src": "3678:474:37" + }, + { + "body": { + "nativeSrc": "4223:53:37", + "nodeType": "YulBlock", + "src": "4223:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4240:3:37", + "nodeType": "YulIdentifier", + "src": "4240:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4263:5:37", + "nodeType": "YulIdentifier", + "src": "4263:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "4245:17:37", + "nodeType": "YulIdentifier", + "src": "4245:17:37" + }, + "nativeSrc": "4245:24:37", + "nodeType": "YulFunctionCall", + "src": "4245:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4233:6:37", + "nodeType": "YulIdentifier", + "src": "4233:6:37" + }, + "nativeSrc": "4233:37:37", + "nodeType": "YulFunctionCall", + "src": "4233:37:37" + }, + "nativeSrc": "4233:37:37", + "nodeType": "YulExpressionStatement", + "src": "4233:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4158:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4211:5:37", + "nodeType": "YulTypedName", + "src": "4211:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4218:3:37", + "nodeType": "YulTypedName", + "src": "4218:3:37", + "type": "" + } + ], + "src": "4158:118:37" + }, + { + "body": { + "nativeSrc": "4347:53:37", + "nodeType": "YulBlock", + "src": "4347:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4364:3:37", + "nodeType": "YulIdentifier", + "src": "4364:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4387:5:37", + "nodeType": "YulIdentifier", + "src": "4387:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "4369:17:37", + "nodeType": "YulIdentifier", + "src": "4369:17:37" + }, + "nativeSrc": "4369:24:37", + "nodeType": "YulFunctionCall", + "src": "4369:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4357:6:37", + "nodeType": "YulIdentifier", + "src": "4357:6:37" + }, + "nativeSrc": "4357:37:37", + "nodeType": "YulFunctionCall", + "src": "4357:37:37" + }, + "nativeSrc": "4357:37:37", + "nodeType": "YulExpressionStatement", + "src": "4357:37:37" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "4282:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4335:5:37", + "nodeType": "YulTypedName", + "src": "4335:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4342:3:37", + "nodeType": "YulTypedName", + "src": "4342:3:37", + "type": "" + } + ], + "src": "4282:118:37" + }, + { + "body": { + "nativeSrc": "4484:66:37", + "nodeType": "YulBlock", + "src": "4484:66:37", + "statements": [ + { + "nativeSrc": "4494:50:37", + "nodeType": "YulAssignment", + "src": "4494:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4538:5:37", + "nodeType": "YulIdentifier", + "src": "4538:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "4507:30:37", + "nodeType": "YulIdentifier", + "src": "4507:30:37" + }, + "nativeSrc": "4507:37:37", + "nodeType": "YulFunctionCall", + "src": "4507:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "4494:9:37", + "nodeType": "YulIdentifier", + "src": "4494:9:37" + } + ] + } + ] + }, + "name": "convert_t_contract$_IVerifier_$7453_to_t_address", + "nativeSrc": "4406:144:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4464:5:37", + "nodeType": "YulTypedName", + "src": "4464:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4474:9:37", + "nodeType": "YulTypedName", + "src": "4474:9:37", + "type": "" + } + ], + "src": "4406:144:37" + }, + { + "body": { + "nativeSrc": "4639:84:37", + "nodeType": "YulBlock", + "src": "4639:84:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4656:3:37", + "nodeType": "YulIdentifier", + "src": "4656:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4710:5:37", + "nodeType": "YulIdentifier", + "src": "4710:5:37" + } + ], + "functionName": { + "name": "convert_t_contract$_IVerifier_$7453_to_t_address", + "nativeSrc": "4661:48:37", + "nodeType": "YulIdentifier", + "src": "4661:48:37" + }, + "nativeSrc": "4661:55:37", + "nodeType": "YulFunctionCall", + "src": "4661:55:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4649:6:37", + "nodeType": "YulIdentifier", + "src": "4649:6:37" + }, + "nativeSrc": "4649:68:37", + "nodeType": "YulFunctionCall", + "src": "4649:68:37" + }, + "nativeSrc": "4649:68:37", + "nodeType": "YulExpressionStatement", + "src": "4649:68:37" + } + ] + }, + "name": "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack", + "nativeSrc": "4556:167:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4627:5:37", + "nodeType": "YulTypedName", + "src": "4627:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4634:3:37", + "nodeType": "YulTypedName", + "src": "4634:3:37", + "type": "" + } + ], + "src": "4556:167:37" + }, + { + "body": { + "nativeSrc": "4901:306:37", + "nodeType": "YulBlock", + "src": "4901:306:37", + "statements": [ + { + "nativeSrc": "4911:26:37", + "nodeType": "YulAssignment", + "src": "4911:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4923:9:37", + "nodeType": "YulIdentifier", + "src": "4923:9:37" + }, + { + "kind": "number", + "nativeSrc": "4934:2:37", + "nodeType": "YulLiteral", + "src": "4934:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4919:3:37", + "nodeType": "YulIdentifier", + "src": "4919:3:37" + }, + "nativeSrc": "4919:18:37", + "nodeType": "YulFunctionCall", + "src": "4919:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4911:4:37", + "nodeType": "YulIdentifier", + "src": "4911:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4991:6:37", + "nodeType": "YulIdentifier", + "src": "4991:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5004:9:37", + "nodeType": "YulIdentifier", + "src": "5004:9:37" + }, + { + "kind": "number", + "nativeSrc": "5015:1:37", + "nodeType": "YulLiteral", + "src": "5015:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5000:3:37", + "nodeType": "YulIdentifier", + "src": "5000:3:37" + }, + "nativeSrc": "5000:17:37", + "nodeType": "YulFunctionCall", + "src": "5000:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4947:43:37", + "nodeType": "YulIdentifier", + "src": "4947:43:37" + }, + "nativeSrc": "4947:71:37", + "nodeType": "YulFunctionCall", + "src": "4947:71:37" + }, + "nativeSrc": "4947:71:37", + "nodeType": "YulExpressionStatement", + "src": "4947:71:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "5072:6:37", + "nodeType": "YulIdentifier", + "src": "5072:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5085:9:37", + "nodeType": "YulIdentifier", + "src": "5085:9:37" + }, + { + "kind": "number", + "nativeSrc": "5096:2:37", + "nodeType": "YulLiteral", + "src": "5096:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5081:3:37", + "nodeType": "YulIdentifier", + "src": "5081:3:37" + }, + "nativeSrc": "5081:18:37", + "nodeType": "YulFunctionCall", + "src": "5081:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "5028:43:37", + "nodeType": "YulIdentifier", + "src": "5028:43:37" + }, + "nativeSrc": "5028:72:37", + "nodeType": "YulFunctionCall", + "src": "5028:72:37" + }, + "nativeSrc": "5028:72:37", + "nodeType": "YulExpressionStatement", + "src": "5028:72:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "5172:6:37", + "nodeType": "YulIdentifier", + "src": "5172:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5185:9:37", + "nodeType": "YulIdentifier", + "src": "5185:9:37" + }, + { + "kind": "number", + "nativeSrc": "5196:2:37", + "nodeType": "YulLiteral", + "src": "5196:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5181:3:37", + "nodeType": "YulIdentifier", + "src": "5181:3:37" + }, + "nativeSrc": "5181:18:37", + "nodeType": "YulFunctionCall", + "src": "5181:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack", + "nativeSrc": "5110:61:37", + "nodeType": "YulIdentifier", + "src": "5110:61:37" + }, + "nativeSrc": "5110:90:37", + "nodeType": "YulFunctionCall", + "src": "5110:90:37" + }, + "nativeSrc": "5110:90:37", + "nodeType": "YulExpressionStatement", + "src": "5110:90:37" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$7453__to_t_address_t_bytes32_t_address__fromStack_reversed", + "nativeSrc": "4729:478:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4857:9:37", + "nodeType": "YulTypedName", + "src": "4857:9:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4869:6:37", + "nodeType": "YulTypedName", + "src": "4869:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4877:6:37", + "nodeType": "YulTypedName", + "src": "4877:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4885:6:37", + "nodeType": "YulTypedName", + "src": "4885:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4896:4:37", + "nodeType": "YulTypedName", + "src": "4896:4:37", + "type": "" + } + ], + "src": "4729:478:37" + }, + { + "body": { + "nativeSrc": "5339:206:37", + "nodeType": "YulBlock", + "src": "5339:206:37", + "statements": [ + { + "nativeSrc": "5349:26:37", + "nodeType": "YulAssignment", + "src": "5349:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5361:9:37", + "nodeType": "YulIdentifier", + "src": "5361:9:37" + }, + { + "kind": "number", + "nativeSrc": "5372:2:37", + "nodeType": "YulLiteral", + "src": "5372:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5357:3:37", + "nodeType": "YulIdentifier", + "src": "5357:3:37" + }, + "nativeSrc": "5357:18:37", + "nodeType": "YulFunctionCall", + "src": "5357:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5349:4:37", + "nodeType": "YulIdentifier", + "src": "5349:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5429:6:37", + "nodeType": "YulIdentifier", + "src": "5429:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5442:9:37", + "nodeType": "YulIdentifier", + "src": "5442:9:37" + }, + { + "kind": "number", + "nativeSrc": "5453:1:37", + "nodeType": "YulLiteral", + "src": "5453:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5438:3:37", + "nodeType": "YulIdentifier", + "src": "5438:3:37" + }, + "nativeSrc": "5438:17:37", + "nodeType": "YulFunctionCall", + "src": "5438:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "5385:43:37", + "nodeType": "YulIdentifier", + "src": "5385:43:37" + }, + "nativeSrc": "5385:71:37", + "nodeType": "YulFunctionCall", + "src": "5385:71:37" + }, + "nativeSrc": "5385:71:37", + "nodeType": "YulExpressionStatement", + "src": "5385:71:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "5510:6:37", + "nodeType": "YulIdentifier", + "src": "5510:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5523:9:37", + "nodeType": "YulIdentifier", + "src": "5523:9:37" + }, + { + "kind": "number", + "nativeSrc": "5534:2:37", + "nodeType": "YulLiteral", + "src": "5534:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5519:3:37", + "nodeType": "YulIdentifier", + "src": "5519:3:37" + }, + "nativeSrc": "5519:18:37", + "nodeType": "YulFunctionCall", + "src": "5519:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "5466:43:37", + "nodeType": "YulIdentifier", + "src": "5466:43:37" + }, + "nativeSrc": "5466:72:37", + "nodeType": "YulFunctionCall", + "src": "5466:72:37" + }, + "nativeSrc": "5466:72:37", + "nodeType": "YulExpressionStatement", + "src": "5466:72:37" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", + "nativeSrc": "5213:332:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5303:9:37", + "nodeType": "YulTypedName", + "src": "5303:9:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5315:6:37", + "nodeType": "YulTypedName", + "src": "5315:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5323:6:37", + "nodeType": "YulTypedName", + "src": "5323:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5334:4:37", + "nodeType": "YulTypedName", + "src": "5334:4:37", + "type": "" + } + ], + "src": "5213:332:37" + }, + { + "body": { + "nativeSrc": "5649:124:37", + "nodeType": "YulBlock", + "src": "5649:124:37", + "statements": [ + { + "nativeSrc": "5659:26:37", + "nodeType": "YulAssignment", + "src": "5659:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5671:9:37", + "nodeType": "YulIdentifier", + "src": "5671:9:37" + }, + { + "kind": "number", + "nativeSrc": "5682:2:37", + "nodeType": "YulLiteral", + "src": "5682:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5667:3:37", + "nodeType": "YulIdentifier", + "src": "5667:3:37" + }, + "nativeSrc": "5667:18:37", + "nodeType": "YulFunctionCall", + "src": "5667:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5659:4:37", + "nodeType": "YulIdentifier", + "src": "5659:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5739:6:37", + "nodeType": "YulIdentifier", + "src": "5739:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5752:9:37", + "nodeType": "YulIdentifier", + "src": "5752:9:37" + }, + { + "kind": "number", + "nativeSrc": "5763:1:37", + "nodeType": "YulLiteral", + "src": "5763:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5748:3:37", + "nodeType": "YulIdentifier", + "src": "5748:3:37" + }, + "nativeSrc": "5748:17:37", + "nodeType": "YulFunctionCall", + "src": "5748:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "5695:43:37", + "nodeType": "YulIdentifier", + "src": "5695:43:37" + }, + "nativeSrc": "5695:71:37", + "nodeType": "YulFunctionCall", + "src": "5695:71:37" + }, + "nativeSrc": "5695:71:37", + "nodeType": "YulExpressionStatement", + "src": "5695:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "5551:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5621:9:37", + "nodeType": "YulTypedName", + "src": "5621:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5633:6:37", + "nodeType": "YulTypedName", + "src": "5633:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5644:4:37", + "nodeType": "YulTypedName", + "src": "5644:4:37", + "type": "" + } + ], + "src": "5551:222:37" + }, + { + "body": { + "nativeSrc": "5842:80:37", + "nodeType": "YulBlock", + "src": "5842:80:37", + "statements": [ + { + "nativeSrc": "5852:22:37", + "nodeType": "YulAssignment", + "src": "5852:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5867:6:37", + "nodeType": "YulIdentifier", + "src": "5867:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5861:5:37", + "nodeType": "YulIdentifier", + "src": "5861:5:37" + }, + "nativeSrc": "5861:13:37", + "nodeType": "YulFunctionCall", + "src": "5861:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "5852:5:37", + "nodeType": "YulIdentifier", + "src": "5852:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5910:5:37", + "nodeType": "YulIdentifier", + "src": "5910:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "5883:26:37", + "nodeType": "YulIdentifier", + "src": "5883:26:37" + }, + "nativeSrc": "5883:33:37", + "nodeType": "YulFunctionCall", + "src": "5883:33:37" + }, + "nativeSrc": "5883:33:37", + "nodeType": "YulExpressionStatement", + "src": "5883:33:37" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "5779:143:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "5820:6:37", + "nodeType": "YulTypedName", + "src": "5820:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5828:3:37", + "nodeType": "YulTypedName", + "src": "5828:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "5836:5:37", + "nodeType": "YulTypedName", + "src": "5836:5:37", + "type": "" + } + ], + "src": "5779:143:37" + }, + { + "body": { + "nativeSrc": "6005:274:37", + "nodeType": "YulBlock", + "src": "6005:274:37", + "statements": [ + { + "body": { + "nativeSrc": "6051:83:37", + "nodeType": "YulBlock", + "src": "6051:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "6053:77:37", + "nodeType": "YulIdentifier", + "src": "6053:77:37" + }, + "nativeSrc": "6053:79:37", + "nodeType": "YulFunctionCall", + "src": "6053:79:37" + }, + "nativeSrc": "6053:79:37", + "nodeType": "YulExpressionStatement", + "src": "6053:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6026:7:37", + "nodeType": "YulIdentifier", + "src": "6026:7:37" + }, + { + "name": "headStart", + "nativeSrc": "6035:9:37", + "nodeType": "YulIdentifier", + "src": "6035:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6022:3:37", + "nodeType": "YulIdentifier", + "src": "6022:3:37" + }, + "nativeSrc": "6022:23:37", + "nodeType": "YulFunctionCall", + "src": "6022:23:37" + }, + { + "kind": "number", + "nativeSrc": "6047:2:37", + "nodeType": "YulLiteral", + "src": "6047:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6018:3:37", + "nodeType": "YulIdentifier", + "src": "6018:3:37" + }, + "nativeSrc": "6018:32:37", + "nodeType": "YulFunctionCall", + "src": "6018:32:37" + }, + "nativeSrc": "6015:119:37", + "nodeType": "YulIf", + "src": "6015:119:37" + }, + { + "nativeSrc": "6144:128:37", + "nodeType": "YulBlock", + "src": "6144:128:37", + "statements": [ + { + "nativeSrc": "6159:15:37", + "nodeType": "YulVariableDeclaration", + "src": "6159:15:37", + "value": { + "kind": "number", + "nativeSrc": "6173:1:37", + "nodeType": "YulLiteral", + "src": "6173:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6163:6:37", + "nodeType": "YulTypedName", + "src": "6163:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6188:74:37", + "nodeType": "YulAssignment", + "src": "6188:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6234:9:37", + "nodeType": "YulIdentifier", + "src": "6234:9:37" + }, + { + "name": "offset", + "nativeSrc": "6245:6:37", + "nodeType": "YulIdentifier", + "src": "6245:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6230:3:37", + "nodeType": "YulIdentifier", + "src": "6230:3:37" + }, + "nativeSrc": "6230:22:37", + "nodeType": "YulFunctionCall", + "src": "6230:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "6254:7:37", + "nodeType": "YulIdentifier", + "src": "6254:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "6198:31:37", + "nodeType": "YulIdentifier", + "src": "6198:31:37" + }, + "nativeSrc": "6198:64:37", + "nodeType": "YulFunctionCall", + "src": "6198:64:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6188:6:37", + "nodeType": "YulIdentifier", + "src": "6188:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nativeSrc": "5928:351:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5975:9:37", + "nodeType": "YulTypedName", + "src": "5975:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5986:7:37", + "nodeType": "YulTypedName", + "src": "5986:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5998:6:37", + "nodeType": "YulTypedName", + "src": "5998:6:37", + "type": "" + } + ], + "src": "5928:351:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_contract$_IVerifier_$7453(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IVerifier_$7453(value) {\n if iszero(eq(value, cleanup_t_contract$_IVerifier_$7453(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IVerifier_$7453(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IVerifier_$7453(value)\n }\n\n function abi_decode_tuple_t_bytes32t_contract$_IVerifier_$7453(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_contract$_IVerifier_$7453(add(headStart, offset), dataEnd)\n }\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_ISciRegistry_$7088_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7088_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function convert_t_contract$_ENS_$136_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ENS_$136_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ENS_$136_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ENS_$136__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ENS_$136_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function convert_t_contract$_IVerifier_$7453_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IVerifier_$7453_to_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$7453__to_t_address_t_bytes32_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "6582": [ + { + "length": 32, + "start": 410 + }, + { + "length": 32, + "start": 636 + } + ], + "6585": [ + { + "length": 32, + "start": 218 + }, + { + "length": 32, + "start": 374 + }, + { + "length": 32, + "start": 458 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80634c7464cf146100515780637b1039991461006d5780637d73b2311461008b578063a8c00861146100a9575b600080fd5b61006b6004803603810190610066919061041d565b6100c5565b005b610075610174565b60405161008291906104bc565b60405180910390f35b610093610198565b6040516100a091906104f8565b60405180910390f35b6100c360048036038101906100be919061053f565b6101bc565b005b6100cd61025b565b826100d88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c61011c61025b565b86866040518463ffffffff1660e01b815260040161013c939291906105be565b600060405180830381600087803b15801561015657600080fd5b505af115801561016a573d6000803e3d6000fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016102239291906105f5565b600060405180830381600087803b15801561023d57600080fd5b505af1158015610251573d6000803e3d6000fd5b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102d3919061061e565b602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610314919061064e565b73ffffffffffffffffffffffffffffffffffffffff161461036e5781816040517f36b852100000000000000000000000000000000000000000000000000000000081526004016103659291906105f5565b60405180910390fd5b5050565b600080fd5b6000819050919050565b61038a81610377565b811461039557600080fd5b50565b6000813590506103a781610381565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103d8826103ad565b9050919050565b60006103ea826103cd565b9050919050565b6103fa816103df565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806040838503121561043457610433610372565b5b600061044285828601610398565b925050602061045385828601610408565b9150509250929050565b6000819050919050565b600061048261047d610478846103ad565b61045d565b6103ad565b9050919050565b600061049482610467565b9050919050565b60006104a682610489565b9050919050565b6104b68161049b565b82525050565b60006020820190506104d160008301846104ad565b92915050565b60006104e282610489565b9050919050565b6104f2816104d7565b82525050565b600060208201905061050d60008301846104e9565b92915050565b61051c816103cd565b811461052757600080fd5b50565b60008135905061053981610513565b92915050565b6000806040838503121561055657610555610372565b5b60006105648582860161052a565b925050602061057585828601610398565b9150509250929050565b610588816103cd565b82525050565b61059781610377565b82525050565b60006105a882610489565b9050919050565b6105b88161059d565b82525050565b60006060820190506105d3600083018661057f565b6105e0602083018561058e565b6105ed60408301846105af565b949350505050565b600060408201905061060a600083018561057f565b610617602083018461058e565b9392505050565b6000602082019050610633600083018461058e565b92915050565b60008151905061064881610513565b92915050565b60006020828403121561066457610663610372565b5b600061067284828501610639565b9150509291505056fea264697066735822122096923f830193a2148dfde33b2ab2564da99065f5ce19265207735a036e96890464736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4C7464CF EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x7D73B231 EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0xA9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH2 0xC5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x75 PUSH2 0x174 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x4BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x93 PUSH2 0x198 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA0 SWAP2 SWAP1 PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x53F JUMP JUMPDEST PUSH2 0x1BC JUMP JUMPDEST STOP JUMPDEST PUSH2 0xCD PUSH2 0x25B JUMP JUMPDEST DUP3 PUSH2 0xD8 DUP3 DUP3 PUSH2 0x263 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD738E6C PUSH2 0x11C PUSH2 0x25B JUMP JUMPDEST DUP7 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5BE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST DUP2 DUP2 PUSH2 0x1C8 DUP3 DUP3 PUSH2 0x263 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA8C00861 DUP6 DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x223 SWAP3 SWAP2 SWAP1 PUSH2 0x5F5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x251 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2571BE3 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D3 SWAP2 SWAP1 PUSH2 0x61E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x64E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x36E JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x36B8521000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x365 SWAP3 SWAP2 SWAP1 PUSH2 0x5F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x38A DUP2 PUSH2 0x377 JUMP JUMPDEST DUP2 EQ PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3A7 DUP2 PUSH2 0x381 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D8 DUP3 PUSH2 0x3AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EA DUP3 PUSH2 0x3CD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FA DUP2 PUSH2 0x3DF JUMP JUMPDEST DUP2 EQ PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x417 DUP2 PUSH2 0x3F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x434 JUMPI PUSH2 0x433 PUSH2 0x372 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x442 DUP6 DUP3 DUP7 ADD PUSH2 0x398 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x453 DUP6 DUP3 DUP7 ADD PUSH2 0x408 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x482 PUSH2 0x47D PUSH2 0x478 DUP5 PUSH2 0x3AD JUMP JUMPDEST PUSH2 0x45D JUMP JUMPDEST PUSH2 0x3AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x494 DUP3 PUSH2 0x467 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A6 DUP3 PUSH2 0x489 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4B6 DUP2 PUSH2 0x49B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4D1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4AD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4E2 DUP3 PUSH2 0x489 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4F2 DUP2 PUSH2 0x4D7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x50D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4E9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x51C DUP2 PUSH2 0x3CD JUMP JUMPDEST DUP2 EQ PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x539 DUP2 PUSH2 0x513 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x556 JUMPI PUSH2 0x555 PUSH2 0x372 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x564 DUP6 DUP3 DUP7 ADD PUSH2 0x52A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x575 DUP6 DUP3 DUP7 ADD PUSH2 0x398 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x588 DUP2 PUSH2 0x3CD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x597 DUP2 PUSH2 0x377 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A8 DUP3 PUSH2 0x489 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5B8 DUP2 PUSH2 0x59D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x5D3 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x57F JUMP JUMPDEST PUSH2 0x5E0 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x5ED PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x5AF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x60A PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x57F JUMP JUMPDEST PUSH2 0x617 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x58E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x633 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x58E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x648 DUP2 PUSH2 0x513 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x664 JUMPI PUSH2 0x663 PUSH2 0x372 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x672 DUP5 DUP3 DUP6 ADD PUSH2 0x639 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP7 SWAP3 EXTCODEHASH DUP4 ADD SWAP4 LOG2 EQ DUP14 REVERT 0xE3 EXTCODESIZE 0x2A 0xB2 JUMP 0x4D 0xA9 SWAP1 PUSH6 0xF5CE19265207 PUSH20 0x5A036E96890464736F6C634300081C0033000000 ", + "sourceMap": "669:2681:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2567:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;746:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;708:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2085:181;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2567:234;2687:12;:10;:12::i;:::-;2701:10;1329:35;1344:7;1353:10;1329:14;:35::i;:::-;2723:8:::1;:35;;;2759:12;:10;:12::i;:::-;2773:10;2785:8;2723:71;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2567:234:::0;;;;:::o;746:38::-;;;:::o;708:32::-;;;:::o;2085:181::-;2188:5;2195:10;1329:35;1344:7;1353:10;1329:14;:35::i;:::-;2217:8:::1;:23;;;2241:5;2248:10;2217:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2085:181:::0;;;;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;3139:209:30:-;3260:7;3227:40;;:11;:17;;;3245:10;3227:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;;3223:119;;3311:7;3320:10;3290:41;;;;;;;;;;;;:::i;:::-;;;;;;;;3223:119;3139:209;;:::o;88:117:37:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:114::-;979:7;1008:24;1026:5;1008:24;:::i;:::-;997:35;;924:114;;;:::o;1044:158::-;1135:42;1171:5;1135:42;:::i;:::-;1128:5;1125:53;1115:81;;1192:1;1189;1182:12;1115:81;1044:158;:::o;1208:175::-;1272:5;1310:6;1297:20;1288:29;;1326:51;1371:5;1326:51;:::i;:::-;1208:175;;;;:::o;1389:510::-;1475:6;1483;1532:2;1520:9;1511:7;1507:23;1503:32;1500:119;;;1538:79;;:::i;:::-;1500:119;1658:1;1683:53;1728:7;1719:6;1708:9;1704:22;1683:53;:::i;:::-;1673:63;;1629:117;1785:2;1811:71;1874:7;1865:6;1854:9;1850:22;1811:71;:::i;:::-;1801:81;;1756:136;1389:510;;;;;:::o;1905:60::-;1933:3;1954:5;1947:12;;1905:60;;;:::o;1971:142::-;2021:9;2054:53;2072:34;2081:24;2099:5;2081:24;:::i;:::-;2072:34;:::i;:::-;2054:53;:::i;:::-;2041:66;;1971:142;;;:::o;2119:126::-;2169:9;2202:37;2233:5;2202:37;:::i;:::-;2189:50;;2119:126;;;:::o;2251:147::-;2322:9;2355:37;2386:5;2355:37;:::i;:::-;2342:50;;2251:147;;;:::o;2404:173::-;2512:58;2564:5;2512:58;:::i;:::-;2507:3;2500:71;2404:173;;:::o;2583:264::-;2697:4;2735:2;2724:9;2720:18;2712:26;;2748:92;2837:1;2826:9;2822:17;2813:6;2748:92;:::i;:::-;2583:264;;;;:::o;2853:137::-;2914:9;2947:37;2978:5;2947:37;:::i;:::-;2934:50;;2853:137;;;:::o;2996:153::-;3094:48;3136:5;3094:48;:::i;:::-;3089:3;3082:61;2996:153;;:::o;3155:244::-;3259:4;3297:2;3286:9;3282:18;3274:26;;3310:82;3389:1;3378:9;3374:17;3365:6;3310:82;:::i;:::-;3155:244;;;;:::o;3405:122::-;3478:24;3496:5;3478:24;:::i;:::-;3471:5;3468:35;3458:63;;3517:1;3514;3507:12;3458:63;3405:122;:::o;3533:139::-;3579:5;3617:6;3604:20;3595:29;;3633:33;3660:5;3633:33;:::i;:::-;3533:139;;;;:::o;3678:474::-;3746:6;3754;3803:2;3791:9;3782:7;3778:23;3774:32;3771:119;;;3809:79;;:::i;:::-;3771:119;3929:1;3954:53;3999:7;3990:6;3979:9;3975:22;3954:53;:::i;:::-;3944:63;;3900:117;4056:2;4082:53;4127:7;4118:6;4107:9;4103:22;4082:53;:::i;:::-;4072:63;;4027:118;3678:474;;;;;:::o;4158:118::-;4245:24;4263:5;4245:24;:::i;:::-;4240:3;4233:37;4158:118;;:::o;4282:::-;4369:24;4387:5;4369:24;:::i;:::-;4364:3;4357:37;4282:118;;:::o;4406:144::-;4474:9;4507:37;4538:5;4507:37;:::i;:::-;4494:50;;4406:144;;;:::o;4556:167::-;4661:55;4710:5;4661:55;:::i;:::-;4656:3;4649:68;4556:167;;:::o;4729:478::-;4896:4;4934:2;4923:9;4919:18;4911:26;;4947:71;5015:1;5004:9;5000:17;4991:6;4947:71;:::i;:::-;5028:72;5096:2;5085:9;5081:18;5072:6;5028:72;:::i;:::-;5110:90;5196:2;5185:9;5181:18;5172:6;5110:90;:::i;:::-;4729:478;;;;;;:::o;5213:332::-;5334:4;5372:2;5361:9;5357:18;5349:26;;5385:71;5453:1;5442:9;5438:17;5429:6;5385:71;:::i;:::-;5466:72;5534:2;5523:9;5519:18;5510:6;5466:72;:::i;:::-;5213:332;;;;;:::o;5551:222::-;5644:4;5682:2;5671:9;5667:18;5659:26;;5695:71;5763:1;5752:9;5748:17;5739:6;5695:71;:::i;:::-;5551:222;;;;:::o;5779:143::-;5836:5;5867:6;5861:13;5852:22;;5883:33;5910:5;5883:33;:::i;:::-;5779:143;;;;:::o;5928:351::-;5998:6;6047:2;6035:9;6026:7;6022:23;6018:32;6015:119;;;6053:79;;:::i;:::-;6015:119;6173:1;6198:64;6254:7;6245:6;6234:9;6230:22;6198:64;:::i;:::-;6188:74;;6144:128;5928:351;;;;:::o" + }, + "methodIdentifiers": { + "ensRegistry()": "7d73b231", + "registerDomain(address,bytes32)": "a8c00861", + "registerDomainWithVerifier(bytes32,address)": "4c7464cf", + "registry()": "7b103999" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ensRegistryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_sciRegistryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"AccountIsNotEnsOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"contract ENS\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"registerDomain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"registerDomainWithVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ISciRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This contract allows owners of an ENS (Ethereum Name Service) domain to register it in the SCI Registry contract. The contract ensures that only the legitimate ENS owner can register a domain by verifying the domain ownership through the ENS contract.\",\"errors\":{\"AccountIsNotEnsOwner(address,bytes32)\":[{\"details\":\"Thrown when the `account` is not the owner of the ENS `domainhash`.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract with references to the ENS and the SCI Registry.\",\"params\":{\"_ensRegistryAddress\":\"Address of the ENS Registry contract.\",\"_sciRegistryAddress\":\"Address of the SCI Registry contract.\"}},\"registerDomain(address,bytes32)\":{\"details\":\"Registers a domain in the SCI Registry contract.\",\"params\":{\"domainHash\":\"Namehash of domain. Requirements: - The owner must be the ENS owner of the domainHash.\",\"owner\":\"Address of the domain owner.\"}},\"registerDomainWithVerifier(bytes32,address)\":{\"details\":\"Registers a domain with a verifier in the SCI Registry contract.\",\"params\":{\"domainHash\":\"Namehash of the domain.\",\"verifier\":\"Address of the verifier contract. Requirements: - The caller must be the ENS owner of the domainHash.\"}}},\"title\":\"EnsRegistrar\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Registrars/EnsRegistrar.sol\":\"EnsRegistrar\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@ensdomains/ens-contracts/contracts/registry/ENS.sol\":{\"keccak256\":\"0x7cb1158c7d268b63de1468e28e2711b28d686e2628ddb22da2149cd93ddeafda\",\"urls\":[\"bzz-raw://a7018309acca24b10ea1235b1c27828f29f2ddfabb653a794639baf620dc2314\",\"dweb:/ipfs/QmakFQT5NFvGs3g8xxwtgtWdddq28Wtm6MjNSpJNhV1YpR\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/Registrars/EnsRegistrar.sol\":{\"keccak256\":\"0x1fda72cd6f6ff3f204b61f61afb11e2e231d9714dd55d003a928cccb25fea1c8\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://74a703465b6d6b83cbc5fff3515169f928c865ec5c0645bae9f0f8f6bb9504e6\",\"dweb:/ipfs/QmQJJ9cBSp22uyqg7ik7XvXiuVLdZtNcM6RfdyTBxz87Mq\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/Registrars/SciRegistrar.sol": { + "SciRegistrar": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_sciRegistryAddress", + "type": "address" + }, + { + "internalType": "uint48", + "name": "initialDelay", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "name": "AccessControlEnforcedDefaultAdminDelay", + "type": "error" + }, + { + "inputs": [], + "name": "AccessControlEnforcedDefaultAdminRules", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "defaultAdmin", + "type": "address" + } + ], + "name": "AccessControlInvalidDefaultAdmin", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "bits", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeCastOverflowedUintDowncast", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminDelayChangeCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "effectSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminDelayChangeScheduled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminTransferCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "acceptSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminTransferScheduled", + "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": "REGISTER_DOMAIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "beginDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cancelDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + } + ], + "name": "changeDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelayIncreaseWait", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "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": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "registerDomain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + } + ], + "name": "registerDomainWithVerifier", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract ISciRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "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": [], + "name": "rollbackDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1784": { + "entryPoint": null, + "id": 1784, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_6733": { + "entryPoint": null, + "id": 6733, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_grantRole_1449": { + "entryPoint": 564, + "id": 1449, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_grantRole_1970": { + "entryPoint": 305, + "id": 1970, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_msgSender_3401": { + "entryPoint": 297, + "id": 3401, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@defaultAdmin_2035": { + "entryPoint": 522, + "id": 2035, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@hasRole_1273": { + "entryPoint": 817, + "id": 1273, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 1001, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint48_fromMemory": { + "entryPoint": 1063, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_uint48_fromMemory": { + "entryPoint": 1084, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1148, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1163, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 960, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 928, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint48": { + "entryPoint": 1022, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 923, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 978, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint48": { + "entryPoint": 1040, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:2081:37", + "nodeType": "YulBlock", + "src": "0:2081:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "379:81:37", + "nodeType": "YulBlock", + "src": "379:81:37", + "statements": [ + { + "nativeSrc": "389:65:37", + "nodeType": "YulAssignment", + "src": "389:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "404:5:37", + "nodeType": "YulIdentifier", + "src": "404:5:37" + }, + { + "kind": "number", + "nativeSrc": "411:42:37", + "nodeType": "YulLiteral", + "src": "411:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "400:3:37", + "nodeType": "YulIdentifier", + "src": "400:3:37" + }, + "nativeSrc": "400:54:37", + "nodeType": "YulFunctionCall", + "src": "400:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:37", + "nodeType": "YulIdentifier", + "src": "389:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:37", + "nodeType": "YulTypedName", + "src": "361:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:37", + "nodeType": "YulTypedName", + "src": "371:7:37", + "type": "" + } + ], + "src": "334:126:37" + }, + { + "body": { + "nativeSrc": "511:51:37", + "nodeType": "YulBlock", + "src": "511:51:37", + "statements": [ + { + "nativeSrc": "521:35:37", + "nodeType": "YulAssignment", + "src": "521:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "550:5:37", + "nodeType": "YulIdentifier", + "src": "550:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:37", + "nodeType": "YulIdentifier", + "src": "532:17:37" + }, + "nativeSrc": "532:24:37", + "nodeType": "YulFunctionCall", + "src": "532:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:37", + "nodeType": "YulIdentifier", + "src": "521:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "466:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "493:5:37", + "nodeType": "YulTypedName", + "src": "493:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "503:7:37", + "nodeType": "YulTypedName", + "src": "503:7:37", + "type": "" + } + ], + "src": "466:96:37" + }, + { + "body": { + "nativeSrc": "611:79:37", + "nodeType": "YulBlock", + "src": "611:79:37", + "statements": [ + { + "body": { + "nativeSrc": "668:16:37", + "nodeType": "YulBlock", + "src": "668:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:37", + "nodeType": "YulLiteral", + "src": "677:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:37", + "nodeType": "YulLiteral", + "src": "680:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "670:6:37", + "nodeType": "YulIdentifier", + "src": "670:6:37" + }, + "nativeSrc": "670:12:37", + "nodeType": "YulFunctionCall", + "src": "670:12:37" + }, + "nativeSrc": "670:12:37", + "nodeType": "YulExpressionStatement", + "src": "670:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "634:5:37", + "nodeType": "YulIdentifier", + "src": "634:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:37", + "nodeType": "YulIdentifier", + "src": "659:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:37", + "nodeType": "YulIdentifier", + "src": "641:17:37" + }, + "nativeSrc": "641:24:37", + "nodeType": "YulFunctionCall", + "src": "641:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "631:2:37", + "nodeType": "YulIdentifier", + "src": "631:2:37" + }, + "nativeSrc": "631:35:37", + "nodeType": "YulFunctionCall", + "src": "631:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:37", + "nodeType": "YulIdentifier", + "src": "624:6:37" + }, + "nativeSrc": "624:43:37", + "nodeType": "YulFunctionCall", + "src": "624:43:37" + }, + "nativeSrc": "621:63:37", + "nodeType": "YulIf", + "src": "621:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:37", + "nodeType": "YulTypedName", + "src": "604:5:37", + "type": "" + } + ], + "src": "568:122:37" + }, + { + "body": { + "nativeSrc": "759:80:37", + "nodeType": "YulBlock", + "src": "759:80:37", + "statements": [ + { + "nativeSrc": "769:22:37", + "nodeType": "YulAssignment", + "src": "769:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "784:6:37", + "nodeType": "YulIdentifier", + "src": "784:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "778:5:37", + "nodeType": "YulIdentifier", + "src": "778:5:37" + }, + "nativeSrc": "778:13:37", + "nodeType": "YulFunctionCall", + "src": "778:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "769:5:37", + "nodeType": "YulIdentifier", + "src": "769:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "827:5:37", + "nodeType": "YulIdentifier", + "src": "827:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "800:26:37", + "nodeType": "YulIdentifier", + "src": "800:26:37" + }, + "nativeSrc": "800:33:37", + "nodeType": "YulFunctionCall", + "src": "800:33:37" + }, + "nativeSrc": "800:33:37", + "nodeType": "YulExpressionStatement", + "src": "800:33:37" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "696:143:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "737:6:37", + "nodeType": "YulTypedName", + "src": "737:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "745:3:37", + "nodeType": "YulTypedName", + "src": "745:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "753:5:37", + "nodeType": "YulTypedName", + "src": "753:5:37", + "type": "" + } + ], + "src": "696:143:37" + }, + { + "body": { + "nativeSrc": "889:53:37", + "nodeType": "YulBlock", + "src": "889:53:37", + "statements": [ + { + "nativeSrc": "899:37:37", + "nodeType": "YulAssignment", + "src": "899:37:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "914:5:37", + "nodeType": "YulIdentifier", + "src": "914:5:37" + }, + { + "kind": "number", + "nativeSrc": "921:14:37", + "nodeType": "YulLiteral", + "src": "921:14:37", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "910:3:37", + "nodeType": "YulIdentifier", + "src": "910:3:37" + }, + "nativeSrc": "910:26:37", + "nodeType": "YulFunctionCall", + "src": "910:26:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "899:7:37", + "nodeType": "YulIdentifier", + "src": "899:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint48", + "nativeSrc": "845:97:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "871:5:37", + "nodeType": "YulTypedName", + "src": "871:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "881:7:37", + "nodeType": "YulTypedName", + "src": "881:7:37", + "type": "" + } + ], + "src": "845:97:37" + }, + { + "body": { + "nativeSrc": "990:78:37", + "nodeType": "YulBlock", + "src": "990:78:37", + "statements": [ + { + "body": { + "nativeSrc": "1046:16:37", + "nodeType": "YulBlock", + "src": "1046:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1055:1:37", + "nodeType": "YulLiteral", + "src": "1055:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1058:1:37", + "nodeType": "YulLiteral", + "src": "1058:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1048:6:37", + "nodeType": "YulIdentifier", + "src": "1048:6:37" + }, + "nativeSrc": "1048:12:37", + "nodeType": "YulFunctionCall", + "src": "1048:12:37" + }, + "nativeSrc": "1048:12:37", + "nodeType": "YulExpressionStatement", + "src": "1048:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1013:5:37", + "nodeType": "YulIdentifier", + "src": "1013:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1037:5:37", + "nodeType": "YulIdentifier", + "src": "1037:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "1020:16:37", + "nodeType": "YulIdentifier", + "src": "1020:16:37" + }, + "nativeSrc": "1020:23:37", + "nodeType": "YulFunctionCall", + "src": "1020:23:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1010:2:37", + "nodeType": "YulIdentifier", + "src": "1010:2:37" + }, + "nativeSrc": "1010:34:37", + "nodeType": "YulFunctionCall", + "src": "1010:34:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1003:6:37", + "nodeType": "YulIdentifier", + "src": "1003:6:37" + }, + "nativeSrc": "1003:42:37", + "nodeType": "YulFunctionCall", + "src": "1003:42:37" + }, + "nativeSrc": "1000:62:37", + "nodeType": "YulIf", + "src": "1000:62:37" + } + ] + }, + "name": "validator_revert_t_uint48", + "nativeSrc": "948:120:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "983:5:37", + "nodeType": "YulTypedName", + "src": "983:5:37", + "type": "" + } + ], + "src": "948:120:37" + }, + { + "body": { + "nativeSrc": "1136:79:37", + "nodeType": "YulBlock", + "src": "1136:79:37", + "statements": [ + { + "nativeSrc": "1146:22:37", + "nodeType": "YulAssignment", + "src": "1146:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1161:6:37", + "nodeType": "YulIdentifier", + "src": "1161:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1155:5:37", + "nodeType": "YulIdentifier", + "src": "1155:5:37" + }, + "nativeSrc": "1155:13:37", + "nodeType": "YulFunctionCall", + "src": "1155:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1146:5:37", + "nodeType": "YulIdentifier", + "src": "1146:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1203:5:37", + "nodeType": "YulIdentifier", + "src": "1203:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_uint48", + "nativeSrc": "1177:25:37", + "nodeType": "YulIdentifier", + "src": "1177:25:37" + }, + "nativeSrc": "1177:32:37", + "nodeType": "YulFunctionCall", + "src": "1177:32:37" + }, + "nativeSrc": "1177:32:37", + "nodeType": "YulExpressionStatement", + "src": "1177:32:37" + } + ] + }, + "name": "abi_decode_t_uint48_fromMemory", + "nativeSrc": "1074:141:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1114:6:37", + "nodeType": "YulTypedName", + "src": "1114:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1122:3:37", + "nodeType": "YulTypedName", + "src": "1122:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1130:5:37", + "nodeType": "YulTypedName", + "src": "1130:5:37", + "type": "" + } + ], + "src": "1074:141:37" + }, + { + "body": { + "nativeSrc": "1314:412:37", + "nodeType": "YulBlock", + "src": "1314:412:37", + "statements": [ + { + "body": { + "nativeSrc": "1360:83:37", + "nodeType": "YulBlock", + "src": "1360:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1362:77:37", + "nodeType": "YulIdentifier", + "src": "1362:77:37" + }, + "nativeSrc": "1362:79:37", + "nodeType": "YulFunctionCall", + "src": "1362:79:37" + }, + "nativeSrc": "1362:79:37", + "nodeType": "YulExpressionStatement", + "src": "1362:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1335:7:37", + "nodeType": "YulIdentifier", + "src": "1335:7:37" + }, + { + "name": "headStart", + "nativeSrc": "1344:9:37", + "nodeType": "YulIdentifier", + "src": "1344:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1331:3:37", + "nodeType": "YulIdentifier", + "src": "1331:3:37" + }, + "nativeSrc": "1331:23:37", + "nodeType": "YulFunctionCall", + "src": "1331:23:37" + }, + { + "kind": "number", + "nativeSrc": "1356:2:37", + "nodeType": "YulLiteral", + "src": "1356:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1327:3:37", + "nodeType": "YulIdentifier", + "src": "1327:3:37" + }, + "nativeSrc": "1327:32:37", + "nodeType": "YulFunctionCall", + "src": "1327:32:37" + }, + "nativeSrc": "1324:119:37", + "nodeType": "YulIf", + "src": "1324:119:37" + }, + { + "nativeSrc": "1453:128:37", + "nodeType": "YulBlock", + "src": "1453:128:37", + "statements": [ + { + "nativeSrc": "1468:15:37", + "nodeType": "YulVariableDeclaration", + "src": "1468:15:37", + "value": { + "kind": "number", + "nativeSrc": "1482:1:37", + "nodeType": "YulLiteral", + "src": "1482:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1472:6:37", + "nodeType": "YulTypedName", + "src": "1472:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1497:74:37", + "nodeType": "YulAssignment", + "src": "1497:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1543:9:37", + "nodeType": "YulIdentifier", + "src": "1543:9:37" + }, + { + "name": "offset", + "nativeSrc": "1554:6:37", + "nodeType": "YulIdentifier", + "src": "1554:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1539:3:37", + "nodeType": "YulIdentifier", + "src": "1539:3:37" + }, + "nativeSrc": "1539:22:37", + "nodeType": "YulFunctionCall", + "src": "1539:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1563:7:37", + "nodeType": "YulIdentifier", + "src": "1563:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "1507:31:37", + "nodeType": "YulIdentifier", + "src": "1507:31:37" + }, + "nativeSrc": "1507:64:37", + "nodeType": "YulFunctionCall", + "src": "1507:64:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1497:6:37", + "nodeType": "YulIdentifier", + "src": "1497:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "1591:128:37", + "nodeType": "YulBlock", + "src": "1591:128:37", + "statements": [ + { + "nativeSrc": "1606:16:37", + "nodeType": "YulVariableDeclaration", + "src": "1606:16:37", + "value": { + "kind": "number", + "nativeSrc": "1620:2:37", + "nodeType": "YulLiteral", + "src": "1620:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1610:6:37", + "nodeType": "YulTypedName", + "src": "1610:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1636:73:37", + "nodeType": "YulAssignment", + "src": "1636:73:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1681:9:37", + "nodeType": "YulIdentifier", + "src": "1681:9:37" + }, + { + "name": "offset", + "nativeSrc": "1692:6:37", + "nodeType": "YulIdentifier", + "src": "1692:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1677:3:37", + "nodeType": "YulIdentifier", + "src": "1677:3:37" + }, + "nativeSrc": "1677:22:37", + "nodeType": "YulFunctionCall", + "src": "1677:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1701:7:37", + "nodeType": "YulIdentifier", + "src": "1701:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint48_fromMemory", + "nativeSrc": "1646:30:37", + "nodeType": "YulIdentifier", + "src": "1646:30:37" + }, + "nativeSrc": "1646:63:37", + "nodeType": "YulFunctionCall", + "src": "1646:63:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1636:6:37", + "nodeType": "YulIdentifier", + "src": "1636:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint48_fromMemory", + "nativeSrc": "1221:505:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1276:9:37", + "nodeType": "YulTypedName", + "src": "1276:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1287:7:37", + "nodeType": "YulTypedName", + "src": "1287:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1299:6:37", + "nodeType": "YulTypedName", + "src": "1299:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1307:6:37", + "nodeType": "YulTypedName", + "src": "1307:6:37", + "type": "" + } + ], + "src": "1221:505:37" + }, + { + "body": { + "nativeSrc": "1797:53:37", + "nodeType": "YulBlock", + "src": "1797:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1814:3:37", + "nodeType": "YulIdentifier", + "src": "1814:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1837:5:37", + "nodeType": "YulIdentifier", + "src": "1837:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1819:17:37", + "nodeType": "YulIdentifier", + "src": "1819:17:37" + }, + "nativeSrc": "1819:24:37", + "nodeType": "YulFunctionCall", + "src": "1819:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1807:6:37", + "nodeType": "YulIdentifier", + "src": "1807:6:37" + }, + "nativeSrc": "1807:37:37", + "nodeType": "YulFunctionCall", + "src": "1807:37:37" + }, + "nativeSrc": "1807:37:37", + "nodeType": "YulExpressionStatement", + "src": "1807:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1732:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1785:5:37", + "nodeType": "YulTypedName", + "src": "1785:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1792:3:37", + "nodeType": "YulTypedName", + "src": "1792:3:37", + "type": "" + } + ], + "src": "1732:118:37" + }, + { + "body": { + "nativeSrc": "1954:124:37", + "nodeType": "YulBlock", + "src": "1954:124:37", + "statements": [ + { + "nativeSrc": "1964:26:37", + "nodeType": "YulAssignment", + "src": "1964:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1976:9:37", + "nodeType": "YulIdentifier", + "src": "1976:9:37" + }, + { + "kind": "number", + "nativeSrc": "1987:2:37", + "nodeType": "YulLiteral", + "src": "1987:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1972:3:37", + "nodeType": "YulIdentifier", + "src": "1972:3:37" + }, + "nativeSrc": "1972:18:37", + "nodeType": "YulFunctionCall", + "src": "1972:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1964:4:37", + "nodeType": "YulIdentifier", + "src": "1964:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2044:6:37", + "nodeType": "YulIdentifier", + "src": "2044:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2057:9:37", + "nodeType": "YulIdentifier", + "src": "2057:9:37" + }, + { + "kind": "number", + "nativeSrc": "2068:1:37", + "nodeType": "YulLiteral", + "src": "2068:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2053:3:37", + "nodeType": "YulIdentifier", + "src": "2053:3:37" + }, + "nativeSrc": "2053:17:37", + "nodeType": "YulFunctionCall", + "src": "2053:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "2000:43:37", + "nodeType": "YulIdentifier", + "src": "2000:43:37" + }, + "nativeSrc": "2000:71:37", + "nodeType": "YulFunctionCall", + "src": "2000:71:37" + }, + "nativeSrc": "2000:71:37", + "nodeType": "YulExpressionStatement", + "src": "2000:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "1856:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1926:9:37", + "nodeType": "YulTypedName", + "src": "1926:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1938:6:37", + "nodeType": "YulTypedName", + "src": "1938:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1949:4:37", + "nodeType": "YulTypedName", + "src": "1949:4:37", + "type": "" + } + ], + "src": "1856:222:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint48(value) -> cleaned {\n cleaned := and(value, 0xffffffffffff)\n }\n\n function validator_revert_t_uint48(value) {\n if iszero(eq(value, cleanup_t_uint48(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint48_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint48(value)\n }\n\n function abi_decode_tuple_t_addresst_uint48_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint48_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a060405234801561001057600080fd5b50604051611f61380380611f618339818101604052810190610032919061043c565b8061004161012960201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b35760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100aa919061048b565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100eb6000801b8261013160201b60201c565b5050508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506104a6565b600033905090565b60008060001b83036101f257600073ffffffffffffffffffffffffffffffffffffffff1661016361020a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146101b0576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610202838361023460201b60201c565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610246838361033160201b60201c565b61032657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102c361012960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061032b565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103cb826103a0565b9050919050565b6103db816103c0565b81146103e657600080fd5b50565b6000815190506103f8816103d2565b92915050565b600065ffffffffffff82169050919050565b610419816103fe565b811461042457600080fd5b50565b60008151905061043681610410565b92915050565b600080604083850312156104535761045261039b565b5b6000610461858286016103e9565b925050602061047285828601610427565b9150509250929050565b610485816103c0565b82525050565b60006020820190506104a0600083018461047c565b92915050565b608051611a926104cf6000396000818161063e0152818161079601526109fb0152611a926000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c9190611497565b6103c9565b60405161016e91906114df565b60405180910390f35b61017f610443565b60405161018c919061151b565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b4919061156c565b610466565b6040516101c691906115a8565b60405180910390f35b6101d7610485565b6040516101e491906115a8565b60405180910390f35b61020760048036038101906102029190611621565b6104a9565b005b610223600480360381019061021e9190611621565b6104f3565b005b61023f600480360381019061023a9190611661565b610608565b005b61025b600480360381019061025691906116ba565b610622565b005b61026561063c565b6040516102729190611746565b60405180910390f35b610283610660565b6040516102909190611770565b60405180910390f35b6102a161068a565b6040516102ae9190611770565b60405180910390f35b6102d160048036038101906102cc9190611621565b610699565b6040516102de91906114df565b60405180910390f35b6102ef610703565b6040516102fd92919061178b565b60405180910390f35b61030e610763565b60405161031b91906115a8565b60405180910390f35b61033e600480360381019061033991906117b4565b61076a565b005b610348610826565b604051610355919061151b565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e9291906117f4565b60405180910390f35b6103a1600480360381019061039c9190611621565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061185b565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061151b565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118ae565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611770565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a56939291906118f8565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c919061195e565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061151b565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c88919061195e565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc592919061178b565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061151b565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118ae565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b9291906119f9565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a22565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60008183106114305781611432565b825b905092915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114748161143f565b811461147f57600080fd5b50565b6000813590506114918161146b565b92915050565b6000602082840312156114ad576114ac61143a565b5b60006114bb84828501611482565b91505092915050565b60008115159050919050565b6114d9816114c4565b82525050565b60006020820190506114f460008301846114d0565b92915050565b600065ffffffffffff82169050919050565b611515816114fa565b82525050565b6000602082019050611530600083018461150c565b92915050565b6000819050919050565b61154981611536565b811461155457600080fd5b50565b60008135905061156681611540565b92915050565b6000602082840312156115825761158161143a565b5b600061159084828501611557565b91505092915050565b6115a281611536565b82525050565b60006020820190506115bd6000830184611599565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115ee826115c3565b9050919050565b6115fe816115e3565b811461160957600080fd5b50565b60008135905061161b816115f5565b92915050565b600080604083850312156116385761163761143a565b5b600061164685828601611557565b92505060206116578582860161160c565b9150509250929050565b6000602082840312156116775761167661143a565b5b60006116858482850161160c565b91505092915050565b611697816114fa565b81146116a257600080fd5b50565b6000813590506116b48161168e565b92915050565b6000602082840312156116d0576116cf61143a565b5b60006116de848285016116a5565b91505092915050565b6000819050919050565b600061170c611707611702846115c3565b6116e7565b6115c3565b9050919050565b600061171e826116f1565b9050919050565b600061173082611713565b9050919050565b61174081611725565b82525050565b600060208201905061175b6000830184611737565b92915050565b61176a816115e3565b82525050565b60006020820190506117856000830184611761565b92915050565b60006040820190506117a0600083018561150c565b6117ad602083018461150c565b9392505050565b600080604083850312156117cb576117ca61143a565b5b60006117d98582860161160c565b92505060206117ea85828601611557565b9150509250929050565b60006040820190506118096000830185611761565b611816602083018461150c565b9392505050565b6000611828826115e3565b9050919050565b6118388161181d565b811461184357600080fd5b50565b6000813590506118558161182f565b92915050565b6000806000606084860312156118745761187361143a565b5b60006118828682870161160c565b935050602061189386828701611557565b92505060406118a486828701611846565b9150509250925092565b60006040820190506118c36000830185611761565b6118d06020830184611599565b9392505050565b60006118e282611713565b9050919050565b6118f2816118d7565b82525050565b600060608201905061190d6000830186611761565b61191a6020830185611599565b61192760408301846118e9565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611969826114fa565b9150611974836114fa565b9250828201905065ffffffffffff8111156119925761199161192f565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ca6119c56119c084611998565b6116e7565b6119a2565b9050919050565b6119da816119af565b82525050565b6000819050919050565b6119f3816119e0565b82525050565b6000604082019050611a0e60008301856119d1565b611a1b60208301846119ea565b9392505050565b6000611a2d826114fa565b9150611a38836114fa565b9250828203905065ffffffffffff811115611a5657611a5561192f565b5b9291505056fea2646970667358221220784af17183a32592891679a3d8a65de9c8f4edc26375d777c51a2a5c8404168464736f6c634300081c0033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1F61 CODESIZE SUB DUP1 PUSH2 0x1F61 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x43C JUMP JUMPDEST DUP1 PUSH2 0x41 PUSH2 0x129 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB3 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xEB PUSH1 0x0 DUP1 SHL DUP3 PUSH2 0x131 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH2 0x4A6 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0x1F2 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x163 PUSH2 0x20A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x202 DUP4 DUP4 PUSH2 0x234 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x246 DUP4 DUP4 PUSH2 0x331 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x326 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x2C3 PUSH2 0x129 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x32B JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3CB DUP3 PUSH2 0x3A0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DB DUP2 PUSH2 0x3C0 JUMP JUMPDEST DUP2 EQ PUSH2 0x3E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3F8 DUP2 PUSH2 0x3D2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x419 DUP2 PUSH2 0x3FE JUMP JUMPDEST DUP2 EQ PUSH2 0x424 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x436 DUP2 PUSH2 0x410 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x453 JUMPI PUSH2 0x452 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x461 DUP6 DUP3 DUP7 ADD PUSH2 0x3E9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x472 DUP6 DUP3 DUP7 ADD PUSH2 0x427 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x485 DUP2 PUSH2 0x3C0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4A0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x47C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1A92 PUSH2 0x4CF PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x63E ADD MSTORE DUP2 DUP2 PUSH2 0x796 ADD MSTORE PUSH2 0x9FB ADD MSTORE PUSH2 0x1A92 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xCC8463C8 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xCC8463C8 EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0xCEFC1429 EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0xCF6EEFB7 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xD602B9FD EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xDD738E6C EQ PUSH2 0x3AD JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0xA1EDA53C EQ PUSH2 0x2E7 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0x324 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x634E93DA EQ PUSH2 0x225 JUMPI DUP1 PUSH4 0x649A5EC7 EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0x84EF8FFC EQ PUSH2 0x27B JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x22D63FB EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0xAA6220B EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0x2A3FEA62 EQ PUSH2 0x1CF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x161 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x1497 JUMP JUMPDEST PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x14DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0x151B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19D PUSH2 0x44E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x156C JUMP JUMPDEST PUSH2 0x466 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x15A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D7 PUSH2 0x485 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E4 SWAP2 SWAP1 PUSH2 0x15A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x207 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x202 SWAP2 SWAP1 PUSH2 0x1621 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x223 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21E SWAP2 SWAP1 PUSH2 0x1621 JUMP JUMPDEST PUSH2 0x4F3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23A SWAP2 SWAP1 PUSH2 0x1661 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x256 SWAP2 SWAP1 PUSH2 0x16BA JUMP JUMPDEST PUSH2 0x622 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x265 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x272 SWAP2 SWAP1 PUSH2 0x1746 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x283 PUSH2 0x660 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x290 SWAP2 SWAP1 PUSH2 0x1770 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A1 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AE SWAP2 SWAP1 PUSH2 0x1770 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2D1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CC SWAP2 SWAP1 PUSH2 0x1621 JUMP JUMPDEST PUSH2 0x699 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DE SWAP2 SWAP1 PUSH2 0x14DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EF PUSH2 0x703 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FD SWAP3 SWAP2 SWAP1 PUSH2 0x178B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30E PUSH2 0x763 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x15A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0x17B4 JUMP JUMPDEST PUSH2 0x76A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x348 PUSH2 0x826 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x151B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x366 PUSH2 0x894 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x370 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP3 SWAP2 SWAP1 PUSH2 0x17F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3A1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39C SWAP2 SWAP1 PUSH2 0x1621 JUMP JUMPDEST PUSH2 0x96D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3AB PUSH2 0x9B7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x185B JUMP JUMPDEST PUSH2 0x9CF JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH32 0x3149878600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x43C JUMPI POP PUSH2 0x43B DUP3 PUSH2 0xA8E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x69780 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x45B DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x463 PUSH2 0xB1C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x4E5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4EF DUP3 DUP3 PUSH2 0xB29 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 EQ DUP1 ISZERO PUSH2 0x537 JUMPI POP PUSH2 0x508 PUSH2 0x660 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x5FA JUMPI PUSH1 0x0 DUP1 PUSH2 0x547 PUSH2 0x92A JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x58D JUMPI POP PUSH2 0x58B DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x59E JUMPI POP PUSH2 0x59C DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x5E0 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5D7 SWAP2 SWAP1 PUSH2 0x151B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMPDEST PUSH2 0x604 DUP3 DUP3 PUSH2 0xB74 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x615 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x61E DUP3 PUSH2 0xBEF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x62F DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x638 DUP3 PUSH2 0xC6A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x694 PUSH2 0x660 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x726 DUP2 PUSH2 0xB4B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x738 JUMPI POP PUSH2 0x736 DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x744 JUMPI PUSH1 0x0 DUP1 PUSH2 0x75B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 PUSH2 0x794 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA8C00861 DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7EF SWAP3 SWAP2 SWAP1 PUSH2 0x18AE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x809 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x81D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x849 DUP2 PUSH2 0xB4B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x85A JUMPI POP PUSH2 0x859 DUP2 PUSH2 0xB60 JUMP JUMPDEST JUMPDEST PUSH2 0x878 JUMPI PUSH1 0x1 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x88E JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89E PUSH2 0x92A JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8C0 PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x91F JUMPI PUSH2 0x8E3 PUSH2 0xCD1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x916 SWAP2 SWAP1 PUSH2 0x1770 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x927 PUSH2 0xCD9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x9A9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9B3 DUP3 DUP3 PUSH2 0xDA8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x9C4 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x9CC PUSH2 0xDCA JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 PUSH2 0x9F9 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD738E6C DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA56 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x18F8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA84 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB01 JUMPI POP PUSH2 0xB00 DUP3 PUSH2 0xDD7 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB19 DUP2 PUSH2 0xB14 PUSH2 0xCD1 JUMP JUMPDEST PUSH2 0xE41 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xB27 PUSH1 0x0 DUP1 PUSH2 0xE92 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xB32 DUP3 PUSH2 0x466 JUMP JUMPDEST PUSH2 0xB3B DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0xB45 DUP4 DUP4 PUSH2 0xF82 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH6 0xFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP DUP3 PUSH6 0xFFFFFFFFFFFF AND LT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB7C PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBE0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBEA DUP3 DUP3 PUSH2 0x104F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF9 PUSH2 0x826 JUMP JUMPDEST PUSH2 0xC02 TIMESTAMP PUSH2 0x10D2 JUMP JUMPDEST PUSH2 0xC0C SWAP2 SWAP1 PUSH2 0x195E JUMP JUMPDEST SWAP1 POP PUSH2 0xC18 DUP3 DUP3 PUSH2 0x112C JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3377DC44241E779DD06AFAB5B788A35CA5F3B778836E2990BDB26A2A4B2E5ED6 DUP3 PUSH1 0x40 MLOAD PUSH2 0xC5E SWAP2 SWAP1 PUSH2 0x151B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC75 DUP3 PUSH2 0x11DF JUMP JUMPDEST PUSH2 0xC7E TIMESTAMP PUSH2 0x10D2 JUMP JUMPDEST PUSH2 0xC88 SWAP2 SWAP1 PUSH2 0x195E JUMP JUMPDEST SWAP1 POP PUSH2 0xC94 DUP3 DUP3 PUSH2 0xE92 JUMP JUMPDEST PUSH32 0xF1038C18CF84A56E432FDBFAF746924B7EA511DFE03A6506A0CEBA4888788D9B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xCC5 SWAP3 SWAP2 SWAP1 PUSH2 0x178B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xCE4 PUSH2 0x92A JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xCF1 DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO DUP1 PUSH2 0xD03 JUMPI POP PUSH2 0xD01 DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xD45 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD3C SWAP2 SWAP1 PUSH2 0x151B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD59 PUSH1 0x0 DUP1 SHL PUSH2 0xD54 PUSH2 0x660 JUMP JUMPDEST PUSH2 0x104F JUMP JUMPDEST POP PUSH2 0xD67 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0xF82 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xDB1 DUP3 PUSH2 0x466 JUMP JUMPDEST PUSH2 0xDBA DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0xDC4 DUP4 DUP4 PUSH2 0x104F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xDD5 PUSH1 0x0 DUP1 PUSH2 0x112C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE4B DUP3 DUP3 PUSH2 0x699 JUMP JUMPDEST PUSH2 0xE8E JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE85 SWAP3 SWAP2 SWAP1 PUSH2 0x18AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xEB4 DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO PUSH2 0xF33 JUMPI PUSH2 0xEC2 DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO PUSH2 0xF05 JUMPI PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xF32 JUMP JUMPDEST PUSH32 0x2B1FA2EDAFE6F7B9E97C1A9E0C3660E645BEB2DCAA2D45BDBF9BEAF5472E1EC5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0x103D JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xFAE PUSH2 0x660 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFFB JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x1047 DUP4 DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 EQ DUP1 ISZERO PUSH2 0x1095 JUMPI POP PUSH2 0x1066 PUSH2 0x660 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE JUMPDEST PUSH2 0x10CA DUP4 DUP4 PUSH2 0x132F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP1 AND DUP3 GT ISZERO PUSH2 0x1124 JUMPI PUSH1 0x30 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DFCC65000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111B SWAP3 SWAP2 SWAP1 PUSH2 0x19F9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1136 PUSH2 0x92A JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x11A8 DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO PUSH2 0x11DA JUMPI PUSH32 0x8886EBFC4259ABDBC16601DD8FB5678E54878F47B3C34836CFC51154A9605109 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11EA PUSH2 0x826 JUMP JUMPDEST SWAP1 POP DUP1 PUSH6 0xFFFFFFFFFFFF AND DUP4 PUSH6 0xFFFFFFFFFFFF AND GT PUSH2 0x1214 JUMPI DUP3 DUP2 PUSH2 0x120F SWAP2 SWAP1 PUSH2 0x1A22 JUMP JUMPDEST PUSH2 0x1236 JUMP JUMPDEST PUSH2 0x1235 DUP4 PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1228 PUSH2 0x443 JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1421 JUMP JUMPDEST JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x124A DUP4 DUP4 PUSH2 0x699 JUMP JUMPDEST PUSH2 0x1324 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x12C1 PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x133B DUP4 DUP4 PUSH2 0x699 JUMP JUMPDEST ISZERO PUSH2 0x1416 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x13B3 PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x141B JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1430 JUMPI DUP2 PUSH2 0x1432 JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1474 DUP2 PUSH2 0x143F JUMP JUMPDEST DUP2 EQ PUSH2 0x147F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1491 DUP2 PUSH2 0x146B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14AD JUMPI PUSH2 0x14AC PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14BB DUP5 DUP3 DUP6 ADD PUSH2 0x1482 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14D9 DUP2 PUSH2 0x14C4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14F4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x14D0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1515 DUP2 PUSH2 0x14FA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1530 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x150C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1549 DUP2 PUSH2 0x1536 JUMP JUMPDEST DUP2 EQ PUSH2 0x1554 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1566 DUP2 PUSH2 0x1540 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1582 JUMPI PUSH2 0x1581 PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1590 DUP5 DUP3 DUP6 ADD PUSH2 0x1557 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15A2 DUP2 PUSH2 0x1536 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15BD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1599 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15EE DUP3 PUSH2 0x15C3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15FE DUP2 PUSH2 0x15E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x1609 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x161B DUP2 PUSH2 0x15F5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1638 JUMPI PUSH2 0x1637 PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1646 DUP6 DUP3 DUP7 ADD PUSH2 0x1557 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1657 DUP6 DUP3 DUP7 ADD PUSH2 0x160C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1677 JUMPI PUSH2 0x1676 PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1685 DUP5 DUP3 DUP6 ADD PUSH2 0x160C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1697 DUP2 PUSH2 0x14FA JUMP JUMPDEST DUP2 EQ PUSH2 0x16A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16B4 DUP2 PUSH2 0x168E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16D0 JUMPI PUSH2 0x16CF PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x16DE DUP5 DUP3 DUP6 ADD PUSH2 0x16A5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x170C PUSH2 0x1707 PUSH2 0x1702 DUP5 PUSH2 0x15C3 JUMP JUMPDEST PUSH2 0x16E7 JUMP JUMPDEST PUSH2 0x15C3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171E DUP3 PUSH2 0x16F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1730 DUP3 PUSH2 0x1713 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1740 DUP2 PUSH2 0x1725 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x175B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1737 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x176A DUP2 PUSH2 0x15E3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1785 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1761 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x17A0 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x150C JUMP JUMPDEST PUSH2 0x17AD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x150C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17CB JUMPI PUSH2 0x17CA PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17D9 DUP6 DUP3 DUP7 ADD PUSH2 0x160C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x17EA DUP6 DUP3 DUP7 ADD PUSH2 0x1557 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1809 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1761 JUMP JUMPDEST PUSH2 0x1816 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x150C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1828 DUP3 PUSH2 0x15E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1838 DUP2 PUSH2 0x181D JUMP JUMPDEST DUP2 EQ PUSH2 0x1843 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1855 DUP2 PUSH2 0x182F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1874 JUMPI PUSH2 0x1873 PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1882 DUP7 DUP3 DUP8 ADD PUSH2 0x160C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1893 DUP7 DUP3 DUP8 ADD PUSH2 0x1557 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x18A4 DUP7 DUP3 DUP8 ADD PUSH2 0x1846 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x18C3 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1761 JUMP JUMPDEST PUSH2 0x18D0 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1599 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18E2 DUP3 PUSH2 0x1713 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18F2 DUP2 PUSH2 0x18D7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x190D PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1761 JUMP JUMPDEST PUSH2 0x191A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1599 JUMP JUMPDEST PUSH2 0x1927 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x18E9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1969 DUP3 PUSH2 0x14FA JUMP JUMPDEST SWAP2 POP PUSH2 0x1974 DUP4 PUSH2 0x14FA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1992 JUMPI PUSH2 0x1991 PUSH2 0x192F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19CA PUSH2 0x19C5 PUSH2 0x19C0 DUP5 PUSH2 0x1998 JUMP JUMPDEST PUSH2 0x16E7 JUMP JUMPDEST PUSH2 0x19A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19DA DUP2 PUSH2 0x19AF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19F3 DUP2 PUSH2 0x19E0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A0E PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x19D1 JUMP JUMPDEST PUSH2 0x1A1B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x19EA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A2D DUP3 PUSH2 0x14FA JUMP JUMPDEST SWAP2 POP PUSH2 0x1A38 DUP4 PUSH2 0x14FA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A56 JUMPI PUSH2 0x1A55 PUSH2 0x192F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH25 0x4AF17183A32592891679A3D8A65DE9C8F4EDC26375D777C51A 0x2A TLOAD DUP5 DIV AND DUP5 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "743:1954:31:-:0;;;1296:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1411:12;1425;:10;;;:12;;:::i;:::-;2415:1:9;2384:33;;:19;:33;;;2380:115;;2481:1;2440:44;;;;;;;;;;;:::i;:::-;;;;;;;;2380:115;2520:12;2504:13;;:28;;;;;;;;;;;;;;;;;;2542:51;2232:4:6;2553:18:9;;2573:19;2542:10;;;:51;;:::i;:::-;;2308:292;;1473:19:31::1;1449:44;;;;;;;;::::0;::::1;1296:204:::0;;743:1954;;656:96:20;709:7;735:10;728:17;;656:96;:::o;5509:370:9:-;5595:4;2232::6;5623:18:9;;5615:4;:26;5611:214;;5687:1;5661:28;;:14;:12;;;:14;;:::i;:::-;:28;;;5657:114;;5716:40;;;;;;;;;;;;;;5657:114;5807:7;5784:20;;:30;;;;;;;;;;;;;;;;;;5611:214;5841:31;5858:4;5864:7;5841:16;;;:31;;:::i;:::-;5834:38;;5509:370;;;;:::o;6707:106::-;6760:7;6786:20;;;;;;;;;;;6779:27;;6707:106;:::o;6179:316:6:-;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;88:117:37:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:97::-;881:7;921:14;914:5;910:26;899:37;;845:97;;;:::o;948:120::-;1020:23;1037:5;1020:23;:::i;:::-;1013:5;1010:34;1000:62;;1058:1;1055;1048:12;1000:62;948:120;:::o;1074:141::-;1130:5;1161:6;1155:13;1146:22;;1177:32;1203:5;1177:32;:::i;:::-;1074:141;;;;:::o;1221:505::-;1299:6;1307;1356:2;1344:9;1335:7;1331:23;1327:32;1324:119;;;1362:79;;:::i;:::-;1324:119;1482:1;1507:64;1563:7;1554:6;1543:9;1539:22;1507:64;:::i;:::-;1497:74;;1453:128;1620:2;1646:63;1701:7;1692:6;1681:9;1677:22;1646:63;:::i;:::-;1636:73;;1591:128;1221:505;;;;;:::o;1732:118::-;1819:24;1837:5;1819:24;:::i;:::-;1814:3;1807:37;1732:118;;:::o;1856:222::-;1949:4;1987:2;1976:9;1972:18;1964:26;;2000:71;2068:1;2057:9;2053:17;2044:6;2000:71;:::i;:::-;1856:222;;;;:::o;743:1954:31:-;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@DEFAULT_ADMIN_ROLE_1222": { + "entryPoint": 1891, + "id": 1222, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@REGISTER_DOMAIN_ROLE_6710": { + "entryPoint": 1157, + "id": 6710, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_acceptDefaultAdminTransfer_2244": { + "entryPoint": 3289, + "id": 2244, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_beginDefaultAdminTransfer_2152": { + "entryPoint": 3055, + "id": 2152, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_cancelDefaultAdminTransfer_2176": { + "entryPoint": 3530, + "id": 2176, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_changeDefaultAdminDelay_2287": { + "entryPoint": 3178, + "id": 2287, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkRole_1286": { + "entryPoint": 2824, + "id": 1286, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkRole_1307": { + "entryPoint": 3649, + "id": 1307, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_delayChangeWait_2339": { + "entryPoint": 4575, + "id": 2339, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_grantRole_1449": { + "entryPoint": 4670, + "id": 1449, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_grantRole_1970": { + "entryPoint": 3970, + "id": 1970, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_hasSchedulePassed_2435": { + "entryPoint": 2912, + "id": 2435, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isScheduleSet_2421": { + "entryPoint": 2891, + "id": 2421, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_msgSender_3401": { + "entryPoint": 3281, + "id": 3401, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_revokeRole_1487": { + "entryPoint": 4911, + "id": 1487, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_revokeRole_2001": { + "entryPoint": 4175, + "id": 2001, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_rollbackDefaultAdminDelay_2308": { + "entryPoint": 2844, + "id": 2308, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_setPendingDefaultAdmin_2369": { + "entryPoint": 4396, + "id": 2369, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setPendingDelay_2408": { + "entryPoint": 3730, + "id": 2408, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@acceptDefaultAdminTransfer_2200": { + "entryPoint": 2196, + "id": 2200, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@beginDefaultAdminTransfer_2124": { + "entryPoint": 1544, + "id": 2124, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@cancelDefaultAdminTransfer_2163": { + "entryPoint": 2487, + "id": 2163, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@changeDefaultAdminDelay_2258": { + "entryPoint": 1570, + "id": 2258, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@defaultAdminDelayIncreaseWait_2110": { + "entryPoint": 1091, + "id": 2110, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@defaultAdminDelay_2071": { + "entryPoint": 2086, + "id": 2071, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@defaultAdmin_2035": { + "entryPoint": 1632, + "id": 2035, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getRoleAdmin_1321": { + "entryPoint": 1126, + "id": 1321, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@grantRole_1340": { + "entryPoint": 2857, + "id": 1340, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@grantRole_1843": { + "entryPoint": 1193, + "id": 1843, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@hasRole_1273": { + "entryPoint": 1689, + "id": 1273, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@min_3887": { + "entryPoint": 5153, + "id": 3887, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@owner_1816": { + "entryPoint": 1674, + "id": 1816, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@pendingDefaultAdminDelay_2101": { + "entryPoint": 1795, + "id": 2101, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@pendingDefaultAdmin_2048": { + "entryPoint": 2346, + "id": 2048, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@registerDomainWithVerifier_6775": { + "entryPoint": 2511, + "id": 6775, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@registerDomain_6752": { + "entryPoint": 1898, + "id": 6752, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@registry_6713": { + "entryPoint": 1596, + "id": 6713, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@renounceRole_1382": { + "entryPoint": 2932, + "id": 1382, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@renounceRole_1931": { + "entryPoint": 1267, + "id": 1931, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@revokeRole_1359": { + "entryPoint": 3496, + "id": 1359, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@revokeRole_1870": { + "entryPoint": 2413, + "id": 1870, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@rollbackDefaultAdminDelay_2298": { + "entryPoint": 1102, + "id": 2298, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@supportsInterface_1255": { + "entryPoint": 2702, + "id": 1255, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_1806": { + "entryPoint": 969, + "id": 1806, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3669": { + "entryPoint": 3543, + "id": 3669, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@toUint48_5491": { + "entryPoint": 4306, + "id": 5491, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 5644, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes32": { + "entryPoint": 5463, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 5250, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_contract$_IVerifier_$7453": { + "entryPoint": 6214, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint48": { + "entryPoint": 5797, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 5729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_bytes32": { + "entryPoint": 6068, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$7453": { + "entryPoint": 6235, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 5484, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_address": { + "entryPoint": 5665, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 5271, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint48": { + "entryPoint": 5818, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 5985, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 5328, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 5529, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack": { + "entryPoint": 5943, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack": { + "entryPoint": 6377, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack": { + "entryPoint": 6609, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 6634, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint48_to_t_uint48_fromStack": { + "entryPoint": 5388, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 6000, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { + "entryPoint": 6318, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$7453__to_t_address_t_bytes32_t_address__fromStack_reversed": { + "entryPoint": 6392, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed": { + "entryPoint": 6132, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 5343, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 5544, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed": { + "entryPoint": 5958, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed": { + "entryPoint": 6649, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed": { + "entryPoint": 5403, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed": { + "entryPoint": 6027, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint48": { + "entryPoint": 6494, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint48": { + "entryPoint": 6690, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 5603, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 5316, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 5430, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 5183, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_contract$_IVerifier_$7453": { + "entryPoint": 6173, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_rational_48_by_1": { + "entryPoint": 6552, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 5571, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 6624, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint48": { + "entryPoint": 5370, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 6562, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_ISciRegistry_$7088_to_t_address": { + "entryPoint": 5925, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_IVerifier_$7453_to_t_address": { + "entryPoint": 6359, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_rational_48_by_1_to_t_uint8": { + "entryPoint": 6575, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 5907, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 5873, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 5863, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 6447, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 5178, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 5621, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 5440, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 5227, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_contract$_IVerifier_$7453": { + "entryPoint": 6191, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint48": { + "entryPoint": 5774, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:11304:37", + "nodeType": "YulBlock", + "src": "0:11304:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "378:105:37", + "nodeType": "YulBlock", + "src": "378:105:37", + "statements": [ + { + "nativeSrc": "388:89:37", + "nodeType": "YulAssignment", + "src": "388:89:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "403:5:37", + "nodeType": "YulIdentifier", + "src": "403:5:37" + }, + { + "kind": "number", + "nativeSrc": "410:66:37", + "nodeType": "YulLiteral", + "src": "410:66:37", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "399:3:37", + "nodeType": "YulIdentifier", + "src": "399:3:37" + }, + "nativeSrc": "399:78:37", + "nodeType": "YulFunctionCall", + "src": "399:78:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "388:7:37", + "nodeType": "YulIdentifier", + "src": "388:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "334:149:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "360:5:37", + "nodeType": "YulTypedName", + "src": "360:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "370:7:37", + "nodeType": "YulTypedName", + "src": "370:7:37", + "type": "" + } + ], + "src": "334:149:37" + }, + { + "body": { + "nativeSrc": "531:78:37", + "nodeType": "YulBlock", + "src": "531:78:37", + "statements": [ + { + "body": { + "nativeSrc": "587:16:37", + "nodeType": "YulBlock", + "src": "587:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "596:1:37", + "nodeType": "YulLiteral", + "src": "596:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "599:1:37", + "nodeType": "YulLiteral", + "src": "599:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "589:6:37", + "nodeType": "YulIdentifier", + "src": "589:6:37" + }, + "nativeSrc": "589:12:37", + "nodeType": "YulFunctionCall", + "src": "589:12:37" + }, + "nativeSrc": "589:12:37", + "nodeType": "YulExpressionStatement", + "src": "589:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "554:5:37", + "nodeType": "YulIdentifier", + "src": "554:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "578:5:37", + "nodeType": "YulIdentifier", + "src": "578:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "561:16:37", + "nodeType": "YulIdentifier", + "src": "561:16:37" + }, + "nativeSrc": "561:23:37", + "nodeType": "YulFunctionCall", + "src": "561:23:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "551:2:37", + "nodeType": "YulIdentifier", + "src": "551:2:37" + }, + "nativeSrc": "551:34:37", + "nodeType": "YulFunctionCall", + "src": "551:34:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "544:6:37", + "nodeType": "YulIdentifier", + "src": "544:6:37" + }, + "nativeSrc": "544:42:37", + "nodeType": "YulFunctionCall", + "src": "544:42:37" + }, + "nativeSrc": "541:62:37", + "nodeType": "YulIf", + "src": "541:62:37" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nativeSrc": "489:120:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "524:5:37", + "nodeType": "YulTypedName", + "src": "524:5:37", + "type": "" + } + ], + "src": "489:120:37" + }, + { + "body": { + "nativeSrc": "666:86:37", + "nodeType": "YulBlock", + "src": "666:86:37", + "statements": [ + { + "nativeSrc": "676:29:37", + "nodeType": "YulAssignment", + "src": "676:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "698:6:37", + "nodeType": "YulIdentifier", + "src": "698:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "685:12:37", + "nodeType": "YulIdentifier", + "src": "685:12:37" + }, + "nativeSrc": "685:20:37", + "nodeType": "YulFunctionCall", + "src": "685:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "676:5:37", + "nodeType": "YulIdentifier", + "src": "676:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "740:5:37", + "nodeType": "YulIdentifier", + "src": "740:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "714:25:37", + "nodeType": "YulIdentifier", + "src": "714:25:37" + }, + "nativeSrc": "714:32:37", + "nodeType": "YulFunctionCall", + "src": "714:32:37" + }, + "nativeSrc": "714:32:37", + "nodeType": "YulExpressionStatement", + "src": "714:32:37" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nativeSrc": "615:137:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "644:6:37", + "nodeType": "YulTypedName", + "src": "644:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "652:3:37", + "nodeType": "YulTypedName", + "src": "652:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "660:5:37", + "nodeType": "YulTypedName", + "src": "660:5:37", + "type": "" + } + ], + "src": "615:137:37" + }, + { + "body": { + "nativeSrc": "823:262:37", + "nodeType": "YulBlock", + "src": "823:262:37", + "statements": [ + { + "body": { + "nativeSrc": "869:83:37", + "nodeType": "YulBlock", + "src": "869:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "871:77:37", + "nodeType": "YulIdentifier", + "src": "871:77:37" + }, + "nativeSrc": "871:79:37", + "nodeType": "YulFunctionCall", + "src": "871:79:37" + }, + "nativeSrc": "871:79:37", + "nodeType": "YulExpressionStatement", + "src": "871:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "844:7:37", + "nodeType": "YulIdentifier", + "src": "844:7:37" + }, + { + "name": "headStart", + "nativeSrc": "853:9:37", + "nodeType": "YulIdentifier", + "src": "853:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "840:3:37", + "nodeType": "YulIdentifier", + "src": "840:3:37" + }, + "nativeSrc": "840:23:37", + "nodeType": "YulFunctionCall", + "src": "840:23:37" + }, + { + "kind": "number", + "nativeSrc": "865:2:37", + "nodeType": "YulLiteral", + "src": "865:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "836:3:37", + "nodeType": "YulIdentifier", + "src": "836:3:37" + }, + "nativeSrc": "836:32:37", + "nodeType": "YulFunctionCall", + "src": "836:32:37" + }, + "nativeSrc": "833:119:37", + "nodeType": "YulIf", + "src": "833:119:37" + }, + { + "nativeSrc": "962:116:37", + "nodeType": "YulBlock", + "src": "962:116:37", + "statements": [ + { + "nativeSrc": "977:15:37", + "nodeType": "YulVariableDeclaration", + "src": "977:15:37", + "value": { + "kind": "number", + "nativeSrc": "991:1:37", + "nodeType": "YulLiteral", + "src": "991:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "981:6:37", + "nodeType": "YulTypedName", + "src": "981:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1006:62:37", + "nodeType": "YulAssignment", + "src": "1006:62:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1040:9:37", + "nodeType": "YulIdentifier", + "src": "1040:9:37" + }, + { + "name": "offset", + "nativeSrc": "1051:6:37", + "nodeType": "YulIdentifier", + "src": "1051:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1036:3:37", + "nodeType": "YulIdentifier", + "src": "1036:3:37" + }, + "nativeSrc": "1036:22:37", + "nodeType": "YulFunctionCall", + "src": "1036:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1060:7:37", + "nodeType": "YulIdentifier", + "src": "1060:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nativeSrc": "1016:19:37", + "nodeType": "YulIdentifier", + "src": "1016:19:37" + }, + "nativeSrc": "1016:52:37", + "nodeType": "YulFunctionCall", + "src": "1016:52:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1006:6:37", + "nodeType": "YulIdentifier", + "src": "1006:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "758:327:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "793:9:37", + "nodeType": "YulTypedName", + "src": "793:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "804:7:37", + "nodeType": "YulTypedName", + "src": "804:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "816:6:37", + "nodeType": "YulTypedName", + "src": "816:6:37", + "type": "" + } + ], + "src": "758:327:37" + }, + { + "body": { + "nativeSrc": "1133:48:37", + "nodeType": "YulBlock", + "src": "1133:48:37", + "statements": [ + { + "nativeSrc": "1143:32:37", + "nodeType": "YulAssignment", + "src": "1143:32:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:37", + "nodeType": "YulIdentifier", + "src": "1168:5:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1161:6:37", + "nodeType": "YulIdentifier", + "src": "1161:6:37" + }, + "nativeSrc": "1161:13:37", + "nodeType": "YulFunctionCall", + "src": "1161:13:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1154:6:37", + "nodeType": "YulIdentifier", + "src": "1154:6:37" + }, + "nativeSrc": "1154:21:37", + "nodeType": "YulFunctionCall", + "src": "1154:21:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1143:7:37", + "nodeType": "YulIdentifier", + "src": "1143:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "1091:90:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1115:5:37", + "nodeType": "YulTypedName", + "src": "1115:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1125:7:37", + "nodeType": "YulTypedName", + "src": "1125:7:37", + "type": "" + } + ], + "src": "1091:90:37" + }, + { + "body": { + "nativeSrc": "1246:50:37", + "nodeType": "YulBlock", + "src": "1246:50:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1263:3:37", + "nodeType": "YulIdentifier", + "src": "1263:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1283:5:37", + "nodeType": "YulIdentifier", + "src": "1283:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "1268:14:37", + "nodeType": "YulIdentifier", + "src": "1268:14:37" + }, + "nativeSrc": "1268:21:37", + "nodeType": "YulFunctionCall", + "src": "1268:21:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1256:6:37", + "nodeType": "YulIdentifier", + "src": "1256:6:37" + }, + "nativeSrc": "1256:34:37", + "nodeType": "YulFunctionCall", + "src": "1256:34:37" + }, + "nativeSrc": "1256:34:37", + "nodeType": "YulExpressionStatement", + "src": "1256:34:37" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1187:109:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1234:5:37", + "nodeType": "YulTypedName", + "src": "1234:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1241:3:37", + "nodeType": "YulTypedName", + "src": "1241:3:37", + "type": "" + } + ], + "src": "1187:109:37" + }, + { + "body": { + "nativeSrc": "1394:118:37", + "nodeType": "YulBlock", + "src": "1394:118:37", + "statements": [ + { + "nativeSrc": "1404:26:37", + "nodeType": "YulAssignment", + "src": "1404:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1416:9:37", + "nodeType": "YulIdentifier", + "src": "1416:9:37" + }, + { + "kind": "number", + "nativeSrc": "1427:2:37", + "nodeType": "YulLiteral", + "src": "1427:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1412:3:37", + "nodeType": "YulIdentifier", + "src": "1412:3:37" + }, + "nativeSrc": "1412:18:37", + "nodeType": "YulFunctionCall", + "src": "1412:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1404:4:37", + "nodeType": "YulIdentifier", + "src": "1404:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1478:6:37", + "nodeType": "YulIdentifier", + "src": "1478:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1491:9:37", + "nodeType": "YulIdentifier", + "src": "1491:9:37" + }, + { + "kind": "number", + "nativeSrc": "1502:1:37", + "nodeType": "YulLiteral", + "src": "1502:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1487:3:37", + "nodeType": "YulIdentifier", + "src": "1487:3:37" + }, + "nativeSrc": "1487:17:37", + "nodeType": "YulFunctionCall", + "src": "1487:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1440:37:37", + "nodeType": "YulIdentifier", + "src": "1440:37:37" + }, + "nativeSrc": "1440:65:37", + "nodeType": "YulFunctionCall", + "src": "1440:65:37" + }, + "nativeSrc": "1440:65:37", + "nodeType": "YulExpressionStatement", + "src": "1440:65:37" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "1302:210:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1366:9:37", + "nodeType": "YulTypedName", + "src": "1366:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1378:6:37", + "nodeType": "YulTypedName", + "src": "1378:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1389:4:37", + "nodeType": "YulTypedName", + "src": "1389:4:37", + "type": "" + } + ], + "src": "1302:210:37" + }, + { + "body": { + "nativeSrc": "1562:53:37", + "nodeType": "YulBlock", + "src": "1562:53:37", + "statements": [ + { + "nativeSrc": "1572:37:37", + "nodeType": "YulAssignment", + "src": "1572:37:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1587:5:37", + "nodeType": "YulIdentifier", + "src": "1587:5:37" + }, + { + "kind": "number", + "nativeSrc": "1594:14:37", + "nodeType": "YulLiteral", + "src": "1594:14:37", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1583:3:37", + "nodeType": "YulIdentifier", + "src": "1583:3:37" + }, + "nativeSrc": "1583:26:37", + "nodeType": "YulFunctionCall", + "src": "1583:26:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1572:7:37", + "nodeType": "YulIdentifier", + "src": "1572:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint48", + "nativeSrc": "1518:97:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1544:5:37", + "nodeType": "YulTypedName", + "src": "1544:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1554:7:37", + "nodeType": "YulTypedName", + "src": "1554:7:37", + "type": "" + } + ], + "src": "1518:97:37" + }, + { + "body": { + "nativeSrc": "1684:52:37", + "nodeType": "YulBlock", + "src": "1684:52:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1701:3:37", + "nodeType": "YulIdentifier", + "src": "1701:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1723:5:37", + "nodeType": "YulIdentifier", + "src": "1723:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "1706:16:37", + "nodeType": "YulIdentifier", + "src": "1706:16:37" + }, + "nativeSrc": "1706:23:37", + "nodeType": "YulFunctionCall", + "src": "1706:23:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1694:6:37", + "nodeType": "YulIdentifier", + "src": "1694:6:37" + }, + "nativeSrc": "1694:36:37", + "nodeType": "YulFunctionCall", + "src": "1694:36:37" + }, + "nativeSrc": "1694:36:37", + "nodeType": "YulExpressionStatement", + "src": "1694:36:37" + } + ] + }, + "name": "abi_encode_t_uint48_to_t_uint48_fromStack", + "nativeSrc": "1621:115:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1672:5:37", + "nodeType": "YulTypedName", + "src": "1672:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1679:3:37", + "nodeType": "YulTypedName", + "src": "1679:3:37", + "type": "" + } + ], + "src": "1621:115:37" + }, + { + "body": { + "nativeSrc": "1838:122:37", + "nodeType": "YulBlock", + "src": "1838:122:37", + "statements": [ + { + "nativeSrc": "1848:26:37", + "nodeType": "YulAssignment", + "src": "1848:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1860:9:37", + "nodeType": "YulIdentifier", + "src": "1860:9:37" + }, + { + "kind": "number", + "nativeSrc": "1871:2:37", + "nodeType": "YulLiteral", + "src": "1871:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1856:3:37", + "nodeType": "YulIdentifier", + "src": "1856:3:37" + }, + "nativeSrc": "1856:18:37", + "nodeType": "YulFunctionCall", + "src": "1856:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1848:4:37", + "nodeType": "YulIdentifier", + "src": "1848:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1926:6:37", + "nodeType": "YulIdentifier", + "src": "1926:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1939:9:37", + "nodeType": "YulIdentifier", + "src": "1939:9:37" + }, + { + "kind": "number", + "nativeSrc": "1950:1:37", + "nodeType": "YulLiteral", + "src": "1950:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1935:3:37", + "nodeType": "YulIdentifier", + "src": "1935:3:37" + }, + "nativeSrc": "1935:17:37", + "nodeType": "YulFunctionCall", + "src": "1935:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint48_to_t_uint48_fromStack", + "nativeSrc": "1884:41:37", + "nodeType": "YulIdentifier", + "src": "1884:41:37" + }, + "nativeSrc": "1884:69:37", + "nodeType": "YulFunctionCall", + "src": "1884:69:37" + }, + "nativeSrc": "1884:69:37", + "nodeType": "YulExpressionStatement", + "src": "1884:69:37" + } + ] + }, + "name": "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed", + "nativeSrc": "1742:218:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1810:9:37", + "nodeType": "YulTypedName", + "src": "1810:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1822:6:37", + "nodeType": "YulTypedName", + "src": "1822:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1833:4:37", + "nodeType": "YulTypedName", + "src": "1833:4:37", + "type": "" + } + ], + "src": "1742:218:37" + }, + { + "body": { + "nativeSrc": "2011:32:37", + "nodeType": "YulBlock", + "src": "2011:32:37", + "statements": [ + { + "nativeSrc": "2021:16:37", + "nodeType": "YulAssignment", + "src": "2021:16:37", + "value": { + "name": "value", + "nativeSrc": "2032:5:37", + "nodeType": "YulIdentifier", + "src": "2032:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2021:7:37", + "nodeType": "YulIdentifier", + "src": "2021:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "1966:77:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1993:5:37", + "nodeType": "YulTypedName", + "src": "1993:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2003:7:37", + "nodeType": "YulTypedName", + "src": "2003:7:37", + "type": "" + } + ], + "src": "1966:77:37" + }, + { + "body": { + "nativeSrc": "2092:79:37", + "nodeType": "YulBlock", + "src": "2092:79:37", + "statements": [ + { + "body": { + "nativeSrc": "2149:16:37", + "nodeType": "YulBlock", + "src": "2149:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2158:1:37", + "nodeType": "YulLiteral", + "src": "2158:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2161:1:37", + "nodeType": "YulLiteral", + "src": "2161:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2151:6:37", + "nodeType": "YulIdentifier", + "src": "2151:6:37" + }, + "nativeSrc": "2151:12:37", + "nodeType": "YulFunctionCall", + "src": "2151:12:37" + }, + "nativeSrc": "2151:12:37", + "nodeType": "YulExpressionStatement", + "src": "2151:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2115:5:37", + "nodeType": "YulIdentifier", + "src": "2115:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2140:5:37", + "nodeType": "YulIdentifier", + "src": "2140:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "2122:17:37", + "nodeType": "YulIdentifier", + "src": "2122:17:37" + }, + "nativeSrc": "2122:24:37", + "nodeType": "YulFunctionCall", + "src": "2122:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2112:2:37", + "nodeType": "YulIdentifier", + "src": "2112:2:37" + }, + "nativeSrc": "2112:35:37", + "nodeType": "YulFunctionCall", + "src": "2112:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2105:6:37", + "nodeType": "YulIdentifier", + "src": "2105:6:37" + }, + "nativeSrc": "2105:43:37", + "nodeType": "YulFunctionCall", + "src": "2105:43:37" + }, + "nativeSrc": "2102:63:37", + "nodeType": "YulIf", + "src": "2102:63:37" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nativeSrc": "2049:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2085:5:37", + "nodeType": "YulTypedName", + "src": "2085:5:37", + "type": "" + } + ], + "src": "2049:122:37" + }, + { + "body": { + "nativeSrc": "2229:87:37", + "nodeType": "YulBlock", + "src": "2229:87:37", + "statements": [ + { + "nativeSrc": "2239:29:37", + "nodeType": "YulAssignment", + "src": "2239:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2261:6:37", + "nodeType": "YulIdentifier", + "src": "2261:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2248:12:37", + "nodeType": "YulIdentifier", + "src": "2248:12:37" + }, + "nativeSrc": "2248:20:37", + "nodeType": "YulFunctionCall", + "src": "2248:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2239:5:37", + "nodeType": "YulIdentifier", + "src": "2239:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2304:5:37", + "nodeType": "YulIdentifier", + "src": "2304:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nativeSrc": "2277:26:37", + "nodeType": "YulIdentifier", + "src": "2277:26:37" + }, + "nativeSrc": "2277:33:37", + "nodeType": "YulFunctionCall", + "src": "2277:33:37" + }, + "nativeSrc": "2277:33:37", + "nodeType": "YulExpressionStatement", + "src": "2277:33:37" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nativeSrc": "2177:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2207:6:37", + "nodeType": "YulTypedName", + "src": "2207:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2215:3:37", + "nodeType": "YulTypedName", + "src": "2215:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2223:5:37", + "nodeType": "YulTypedName", + "src": "2223:5:37", + "type": "" + } + ], + "src": "2177:139:37" + }, + { + "body": { + "nativeSrc": "2388:263:37", + "nodeType": "YulBlock", + "src": "2388:263:37", + "statements": [ + { + "body": { + "nativeSrc": "2434:83:37", + "nodeType": "YulBlock", + "src": "2434:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2436:77:37", + "nodeType": "YulIdentifier", + "src": "2436:77:37" + }, + "nativeSrc": "2436:79:37", + "nodeType": "YulFunctionCall", + "src": "2436:79:37" + }, + "nativeSrc": "2436:79:37", + "nodeType": "YulExpressionStatement", + "src": "2436:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2409:7:37", + "nodeType": "YulIdentifier", + "src": "2409:7:37" + }, + { + "name": "headStart", + "nativeSrc": "2418:9:37", + "nodeType": "YulIdentifier", + "src": "2418:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2405:3:37", + "nodeType": "YulIdentifier", + "src": "2405:3:37" + }, + "nativeSrc": "2405:23:37", + "nodeType": "YulFunctionCall", + "src": "2405:23:37" + }, + { + "kind": "number", + "nativeSrc": "2430:2:37", + "nodeType": "YulLiteral", + "src": "2430:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2401:3:37", + "nodeType": "YulIdentifier", + "src": "2401:3:37" + }, + "nativeSrc": "2401:32:37", + "nodeType": "YulFunctionCall", + "src": "2401:32:37" + }, + "nativeSrc": "2398:119:37", + "nodeType": "YulIf", + "src": "2398:119:37" + }, + { + "nativeSrc": "2527:117:37", + "nodeType": "YulBlock", + "src": "2527:117:37", + "statements": [ + { + "nativeSrc": "2542:15:37", + "nodeType": "YulVariableDeclaration", + "src": "2542:15:37", + "value": { + "kind": "number", + "nativeSrc": "2556:1:37", + "nodeType": "YulLiteral", + "src": "2556:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2546:6:37", + "nodeType": "YulTypedName", + "src": "2546:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "2571:63:37", + "nodeType": "YulAssignment", + "src": "2571:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2606:9:37", + "nodeType": "YulIdentifier", + "src": "2606:9:37" + }, + { + "name": "offset", + "nativeSrc": "2617:6:37", + "nodeType": "YulIdentifier", + "src": "2617:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2602:3:37", + "nodeType": "YulIdentifier", + "src": "2602:3:37" + }, + "nativeSrc": "2602:22:37", + "nodeType": "YulFunctionCall", + "src": "2602:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "2626:7:37", + "nodeType": "YulIdentifier", + "src": "2626:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "2581:20:37", + "nodeType": "YulIdentifier", + "src": "2581:20:37" + }, + "nativeSrc": "2581:53:37", + "nodeType": "YulFunctionCall", + "src": "2581:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2571:6:37", + "nodeType": "YulIdentifier", + "src": "2571:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "2322:329:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2358:9:37", + "nodeType": "YulTypedName", + "src": "2358:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2369:7:37", + "nodeType": "YulTypedName", + "src": "2369:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2381:6:37", + "nodeType": "YulTypedName", + "src": "2381:6:37", + "type": "" + } + ], + "src": "2322:329:37" + }, + { + "body": { + "nativeSrc": "2722:53:37", + "nodeType": "YulBlock", + "src": "2722:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2739:3:37", + "nodeType": "YulIdentifier", + "src": "2739:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2762:5:37", + "nodeType": "YulIdentifier", + "src": "2762:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "2744:17:37", + "nodeType": "YulIdentifier", + "src": "2744:17:37" + }, + "nativeSrc": "2744:24:37", + "nodeType": "YulFunctionCall", + "src": "2744:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2732:6:37", + "nodeType": "YulIdentifier", + "src": "2732:6:37" + }, + "nativeSrc": "2732:37:37", + "nodeType": "YulFunctionCall", + "src": "2732:37:37" + }, + "nativeSrc": "2732:37:37", + "nodeType": "YulExpressionStatement", + "src": "2732:37:37" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "2657:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2710:5:37", + "nodeType": "YulTypedName", + "src": "2710:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2717:3:37", + "nodeType": "YulTypedName", + "src": "2717:3:37", + "type": "" + } + ], + "src": "2657:118:37" + }, + { + "body": { + "nativeSrc": "2879:124:37", + "nodeType": "YulBlock", + "src": "2879:124:37", + "statements": [ + { + "nativeSrc": "2889:26:37", + "nodeType": "YulAssignment", + "src": "2889:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2901:9:37", + "nodeType": "YulIdentifier", + "src": "2901:9:37" + }, + { + "kind": "number", + "nativeSrc": "2912:2:37", + "nodeType": "YulLiteral", + "src": "2912:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2897:3:37", + "nodeType": "YulIdentifier", + "src": "2897:3:37" + }, + "nativeSrc": "2897:18:37", + "nodeType": "YulFunctionCall", + "src": "2897:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2889:4:37", + "nodeType": "YulIdentifier", + "src": "2889:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2969:6:37", + "nodeType": "YulIdentifier", + "src": "2969:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2982:9:37", + "nodeType": "YulIdentifier", + "src": "2982:9:37" + }, + { + "kind": "number", + "nativeSrc": "2993:1:37", + "nodeType": "YulLiteral", + "src": "2993:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2978:3:37", + "nodeType": "YulIdentifier", + "src": "2978:3:37" + }, + "nativeSrc": "2978:17:37", + "nodeType": "YulFunctionCall", + "src": "2978:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "2925:43:37", + "nodeType": "YulIdentifier", + "src": "2925:43:37" + }, + "nativeSrc": "2925:71:37", + "nodeType": "YulFunctionCall", + "src": "2925:71:37" + }, + "nativeSrc": "2925:71:37", + "nodeType": "YulExpressionStatement", + "src": "2925:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "2781:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2851:9:37", + "nodeType": "YulTypedName", + "src": "2851:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2863:6:37", + "nodeType": "YulTypedName", + "src": "2863:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2874:4:37", + "nodeType": "YulTypedName", + "src": "2874:4:37", + "type": "" + } + ], + "src": "2781:222:37" + }, + { + "body": { + "nativeSrc": "3054:81:37", + "nodeType": "YulBlock", + "src": "3054:81:37", + "statements": [ + { + "nativeSrc": "3064:65:37", + "nodeType": "YulAssignment", + "src": "3064:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3079:5:37", + "nodeType": "YulIdentifier", + "src": "3079:5:37" + }, + { + "kind": "number", + "nativeSrc": "3086:42:37", + "nodeType": "YulLiteral", + "src": "3086:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3075:3:37", + "nodeType": "YulIdentifier", + "src": "3075:3:37" + }, + "nativeSrc": "3075:54:37", + "nodeType": "YulFunctionCall", + "src": "3075:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3064:7:37", + "nodeType": "YulIdentifier", + "src": "3064:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "3009:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3036:5:37", + "nodeType": "YulTypedName", + "src": "3036:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3046:7:37", + "nodeType": "YulTypedName", + "src": "3046:7:37", + "type": "" + } + ], + "src": "3009:126:37" + }, + { + "body": { + "nativeSrc": "3186:51:37", + "nodeType": "YulBlock", + "src": "3186:51:37", + "statements": [ + { + "nativeSrc": "3196:35:37", + "nodeType": "YulAssignment", + "src": "3196:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3225:5:37", + "nodeType": "YulIdentifier", + "src": "3225:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3207:17:37", + "nodeType": "YulIdentifier", + "src": "3207:17:37" + }, + "nativeSrc": "3207:24:37", + "nodeType": "YulFunctionCall", + "src": "3207:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3196:7:37", + "nodeType": "YulIdentifier", + "src": "3196:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "3141:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3168:5:37", + "nodeType": "YulTypedName", + "src": "3168:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3178:7:37", + "nodeType": "YulTypedName", + "src": "3178:7:37", + "type": "" + } + ], + "src": "3141:96:37" + }, + { + "body": { + "nativeSrc": "3286:79:37", + "nodeType": "YulBlock", + "src": "3286:79:37", + "statements": [ + { + "body": { + "nativeSrc": "3343:16:37", + "nodeType": "YulBlock", + "src": "3343:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3352:1:37", + "nodeType": "YulLiteral", + "src": "3352:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3355:1:37", + "nodeType": "YulLiteral", + "src": "3355:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3345:6:37", + "nodeType": "YulIdentifier", + "src": "3345:6:37" + }, + "nativeSrc": "3345:12:37", + "nodeType": "YulFunctionCall", + "src": "3345:12:37" + }, + "nativeSrc": "3345:12:37", + "nodeType": "YulExpressionStatement", + "src": "3345:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3309:5:37", + "nodeType": "YulIdentifier", + "src": "3309:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3334:5:37", + "nodeType": "YulIdentifier", + "src": "3334:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "3316:17:37", + "nodeType": "YulIdentifier", + "src": "3316:17:37" + }, + "nativeSrc": "3316:24:37", + "nodeType": "YulFunctionCall", + "src": "3316:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3306:2:37", + "nodeType": "YulIdentifier", + "src": "3306:2:37" + }, + "nativeSrc": "3306:35:37", + "nodeType": "YulFunctionCall", + "src": "3306:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3299:6:37", + "nodeType": "YulIdentifier", + "src": "3299:6:37" + }, + "nativeSrc": "3299:43:37", + "nodeType": "YulFunctionCall", + "src": "3299:43:37" + }, + "nativeSrc": "3296:63:37", + "nodeType": "YulIf", + "src": "3296:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "3243:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3279:5:37", + "nodeType": "YulTypedName", + "src": "3279:5:37", + "type": "" + } + ], + "src": "3243:122:37" + }, + { + "body": { + "nativeSrc": "3423:87:37", + "nodeType": "YulBlock", + "src": "3423:87:37", + "statements": [ + { + "nativeSrc": "3433:29:37", + "nodeType": "YulAssignment", + "src": "3433:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3455:6:37", + "nodeType": "YulIdentifier", + "src": "3455:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3442:12:37", + "nodeType": "YulIdentifier", + "src": "3442:12:37" + }, + "nativeSrc": "3442:20:37", + "nodeType": "YulFunctionCall", + "src": "3442:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3433:5:37", + "nodeType": "YulIdentifier", + "src": "3433:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3498:5:37", + "nodeType": "YulIdentifier", + "src": "3498:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "3471:26:37", + "nodeType": "YulIdentifier", + "src": "3471:26:37" + }, + "nativeSrc": "3471:33:37", + "nodeType": "YulFunctionCall", + "src": "3471:33:37" + }, + "nativeSrc": "3471:33:37", + "nodeType": "YulExpressionStatement", + "src": "3471:33:37" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "3371:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3401:6:37", + "nodeType": "YulTypedName", + "src": "3401:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3409:3:37", + "nodeType": "YulTypedName", + "src": "3409:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3417:5:37", + "nodeType": "YulTypedName", + "src": "3417:5:37", + "type": "" + } + ], + "src": "3371:139:37" + }, + { + "body": { + "nativeSrc": "3599:391:37", + "nodeType": "YulBlock", + "src": "3599:391:37", + "statements": [ + { + "body": { + "nativeSrc": "3645:83:37", + "nodeType": "YulBlock", + "src": "3645:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3647:77:37", + "nodeType": "YulIdentifier", + "src": "3647:77:37" + }, + "nativeSrc": "3647:79:37", + "nodeType": "YulFunctionCall", + "src": "3647:79:37" + }, + "nativeSrc": "3647:79:37", + "nodeType": "YulExpressionStatement", + "src": "3647:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3620:7:37", + "nodeType": "YulIdentifier", + "src": "3620:7:37" + }, + { + "name": "headStart", + "nativeSrc": "3629:9:37", + "nodeType": "YulIdentifier", + "src": "3629:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3616:3:37", + "nodeType": "YulIdentifier", + "src": "3616:3:37" + }, + "nativeSrc": "3616:23:37", + "nodeType": "YulFunctionCall", + "src": "3616:23:37" + }, + { + "kind": "number", + "nativeSrc": "3641:2:37", + "nodeType": "YulLiteral", + "src": "3641:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3612:3:37", + "nodeType": "YulIdentifier", + "src": "3612:3:37" + }, + "nativeSrc": "3612:32:37", + "nodeType": "YulFunctionCall", + "src": "3612:32:37" + }, + "nativeSrc": "3609:119:37", + "nodeType": "YulIf", + "src": "3609:119:37" + }, + { + "nativeSrc": "3738:117:37", + "nodeType": "YulBlock", + "src": "3738:117:37", + "statements": [ + { + "nativeSrc": "3753:15:37", + "nodeType": "YulVariableDeclaration", + "src": "3753:15:37", + "value": { + "kind": "number", + "nativeSrc": "3767:1:37", + "nodeType": "YulLiteral", + "src": "3767:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3757:6:37", + "nodeType": "YulTypedName", + "src": "3757:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3782:63:37", + "nodeType": "YulAssignment", + "src": "3782:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3817:9:37", + "nodeType": "YulIdentifier", + "src": "3817:9:37" + }, + { + "name": "offset", + "nativeSrc": "3828:6:37", + "nodeType": "YulIdentifier", + "src": "3828:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3813:3:37", + "nodeType": "YulIdentifier", + "src": "3813:3:37" + }, + "nativeSrc": "3813:22:37", + "nodeType": "YulFunctionCall", + "src": "3813:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3837:7:37", + "nodeType": "YulIdentifier", + "src": "3837:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "3792:20:37", + "nodeType": "YulIdentifier", + "src": "3792:20:37" + }, + "nativeSrc": "3792:53:37", + "nodeType": "YulFunctionCall", + "src": "3792:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3782:6:37", + "nodeType": "YulIdentifier", + "src": "3782:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "3865:118:37", + "nodeType": "YulBlock", + "src": "3865:118:37", + "statements": [ + { + "nativeSrc": "3880:16:37", + "nodeType": "YulVariableDeclaration", + "src": "3880:16:37", + "value": { + "kind": "number", + "nativeSrc": "3894:2:37", + "nodeType": "YulLiteral", + "src": "3894:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3884:6:37", + "nodeType": "YulTypedName", + "src": "3884:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3910:63:37", + "nodeType": "YulAssignment", + "src": "3910:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3945:9:37", + "nodeType": "YulIdentifier", + "src": "3945:9:37" + }, + { + "name": "offset", + "nativeSrc": "3956:6:37", + "nodeType": "YulIdentifier", + "src": "3956:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3941:3:37", + "nodeType": "YulIdentifier", + "src": "3941:3:37" + }, + "nativeSrc": "3941:22:37", + "nodeType": "YulFunctionCall", + "src": "3941:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3965:7:37", + "nodeType": "YulIdentifier", + "src": "3965:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "3920:20:37", + "nodeType": "YulIdentifier", + "src": "3920:20:37" + }, + "nativeSrc": "3920:53:37", + "nodeType": "YulFunctionCall", + "src": "3920:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "3910:6:37", + "nodeType": "YulIdentifier", + "src": "3910:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nativeSrc": "3516:474:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3561:9:37", + "nodeType": "YulTypedName", + "src": "3561:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3572:7:37", + "nodeType": "YulTypedName", + "src": "3572:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3584:6:37", + "nodeType": "YulTypedName", + "src": "3584:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3592:6:37", + "nodeType": "YulTypedName", + "src": "3592:6:37", + "type": "" + } + ], + "src": "3516:474:37" + }, + { + "body": { + "nativeSrc": "4062:263:37", + "nodeType": "YulBlock", + "src": "4062:263:37", + "statements": [ + { + "body": { + "nativeSrc": "4108:83:37", + "nodeType": "YulBlock", + "src": "4108:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4110:77:37", + "nodeType": "YulIdentifier", + "src": "4110:77:37" + }, + "nativeSrc": "4110:79:37", + "nodeType": "YulFunctionCall", + "src": "4110:79:37" + }, + "nativeSrc": "4110:79:37", + "nodeType": "YulExpressionStatement", + "src": "4110:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4083:7:37", + "nodeType": "YulIdentifier", + "src": "4083:7:37" + }, + { + "name": "headStart", + "nativeSrc": "4092:9:37", + "nodeType": "YulIdentifier", + "src": "4092:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4079:3:37", + "nodeType": "YulIdentifier", + "src": "4079:3:37" + }, + "nativeSrc": "4079:23:37", + "nodeType": "YulFunctionCall", + "src": "4079:23:37" + }, + { + "kind": "number", + "nativeSrc": "4104:2:37", + "nodeType": "YulLiteral", + "src": "4104:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4075:3:37", + "nodeType": "YulIdentifier", + "src": "4075:3:37" + }, + "nativeSrc": "4075:32:37", + "nodeType": "YulFunctionCall", + "src": "4075:32:37" + }, + "nativeSrc": "4072:119:37", + "nodeType": "YulIf", + "src": "4072:119:37" + }, + { + "nativeSrc": "4201:117:37", + "nodeType": "YulBlock", + "src": "4201:117:37", + "statements": [ + { + "nativeSrc": "4216:15:37", + "nodeType": "YulVariableDeclaration", + "src": "4216:15:37", + "value": { + "kind": "number", + "nativeSrc": "4230:1:37", + "nodeType": "YulLiteral", + "src": "4230:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4220:6:37", + "nodeType": "YulTypedName", + "src": "4220:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "4245:63:37", + "nodeType": "YulAssignment", + "src": "4245:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4280:9:37", + "nodeType": "YulIdentifier", + "src": "4280:9:37" + }, + { + "name": "offset", + "nativeSrc": "4291:6:37", + "nodeType": "YulIdentifier", + "src": "4291:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4276:3:37", + "nodeType": "YulIdentifier", + "src": "4276:3:37" + }, + "nativeSrc": "4276:22:37", + "nodeType": "YulFunctionCall", + "src": "4276:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4300:7:37", + "nodeType": "YulIdentifier", + "src": "4300:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4255:20:37", + "nodeType": "YulIdentifier", + "src": "4255:20:37" + }, + "nativeSrc": "4255:53:37", + "nodeType": "YulFunctionCall", + "src": "4255:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4245:6:37", + "nodeType": "YulIdentifier", + "src": "4245:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "3996:329:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4032:9:37", + "nodeType": "YulTypedName", + "src": "4032:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4043:7:37", + "nodeType": "YulTypedName", + "src": "4043:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4055:6:37", + "nodeType": "YulTypedName", + "src": "4055:6:37", + "type": "" + } + ], + "src": "3996:329:37" + }, + { + "body": { + "nativeSrc": "4373:78:37", + "nodeType": "YulBlock", + "src": "4373:78:37", + "statements": [ + { + "body": { + "nativeSrc": "4429:16:37", + "nodeType": "YulBlock", + "src": "4429:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4438:1:37", + "nodeType": "YulLiteral", + "src": "4438:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4441:1:37", + "nodeType": "YulLiteral", + "src": "4441:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4431:6:37", + "nodeType": "YulIdentifier", + "src": "4431:6:37" + }, + "nativeSrc": "4431:12:37", + "nodeType": "YulFunctionCall", + "src": "4431:12:37" + }, + "nativeSrc": "4431:12:37", + "nodeType": "YulExpressionStatement", + "src": "4431:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4396:5:37", + "nodeType": "YulIdentifier", + "src": "4396:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4420:5:37", + "nodeType": "YulIdentifier", + "src": "4420:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "4403:16:37", + "nodeType": "YulIdentifier", + "src": "4403:16:37" + }, + "nativeSrc": "4403:23:37", + "nodeType": "YulFunctionCall", + "src": "4403:23:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "4393:2:37", + "nodeType": "YulIdentifier", + "src": "4393:2:37" + }, + "nativeSrc": "4393:34:37", + "nodeType": "YulFunctionCall", + "src": "4393:34:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4386:6:37", + "nodeType": "YulIdentifier", + "src": "4386:6:37" + }, + "nativeSrc": "4386:42:37", + "nodeType": "YulFunctionCall", + "src": "4386:42:37" + }, + "nativeSrc": "4383:62:37", + "nodeType": "YulIf", + "src": "4383:62:37" + } + ] + }, + "name": "validator_revert_t_uint48", + "nativeSrc": "4331:120:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4366:5:37", + "nodeType": "YulTypedName", + "src": "4366:5:37", + "type": "" + } + ], + "src": "4331:120:37" + }, + { + "body": { + "nativeSrc": "4508:86:37", + "nodeType": "YulBlock", + "src": "4508:86:37", + "statements": [ + { + "nativeSrc": "4518:29:37", + "nodeType": "YulAssignment", + "src": "4518:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4540:6:37", + "nodeType": "YulIdentifier", + "src": "4540:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4527:12:37", + "nodeType": "YulIdentifier", + "src": "4527:12:37" + }, + "nativeSrc": "4527:20:37", + "nodeType": "YulFunctionCall", + "src": "4527:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4518:5:37", + "nodeType": "YulIdentifier", + "src": "4518:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4582:5:37", + "nodeType": "YulIdentifier", + "src": "4582:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_uint48", + "nativeSrc": "4556:25:37", + "nodeType": "YulIdentifier", + "src": "4556:25:37" + }, + "nativeSrc": "4556:32:37", + "nodeType": "YulFunctionCall", + "src": "4556:32:37" + }, + "nativeSrc": "4556:32:37", + "nodeType": "YulExpressionStatement", + "src": "4556:32:37" + } + ] + }, + "name": "abi_decode_t_uint48", + "nativeSrc": "4457:137:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4486:6:37", + "nodeType": "YulTypedName", + "src": "4486:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "4494:3:37", + "nodeType": "YulTypedName", + "src": "4494:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "4502:5:37", + "nodeType": "YulTypedName", + "src": "4502:5:37", + "type": "" + } + ], + "src": "4457:137:37" + }, + { + "body": { + "nativeSrc": "4665:262:37", + "nodeType": "YulBlock", + "src": "4665:262:37", + "statements": [ + { + "body": { + "nativeSrc": "4711:83:37", + "nodeType": "YulBlock", + "src": "4711:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4713:77:37", + "nodeType": "YulIdentifier", + "src": "4713:77:37" + }, + "nativeSrc": "4713:79:37", + "nodeType": "YulFunctionCall", + "src": "4713:79:37" + }, + "nativeSrc": "4713:79:37", + "nodeType": "YulExpressionStatement", + "src": "4713:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4686:7:37", + "nodeType": "YulIdentifier", + "src": "4686:7:37" + }, + { + "name": "headStart", + "nativeSrc": "4695:9:37", + "nodeType": "YulIdentifier", + "src": "4695:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4682:3:37", + "nodeType": "YulIdentifier", + "src": "4682:3:37" + }, + "nativeSrc": "4682:23:37", + "nodeType": "YulFunctionCall", + "src": "4682:23:37" + }, + { + "kind": "number", + "nativeSrc": "4707:2:37", + "nodeType": "YulLiteral", + "src": "4707:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4678:3:37", + "nodeType": "YulIdentifier", + "src": "4678:3:37" + }, + "nativeSrc": "4678:32:37", + "nodeType": "YulFunctionCall", + "src": "4678:32:37" + }, + "nativeSrc": "4675:119:37", + "nodeType": "YulIf", + "src": "4675:119:37" + }, + { + "nativeSrc": "4804:116:37", + "nodeType": "YulBlock", + "src": "4804:116:37", + "statements": [ + { + "nativeSrc": "4819:15:37", + "nodeType": "YulVariableDeclaration", + "src": "4819:15:37", + "value": { + "kind": "number", + "nativeSrc": "4833:1:37", + "nodeType": "YulLiteral", + "src": "4833:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4823:6:37", + "nodeType": "YulTypedName", + "src": "4823:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "4848:62:37", + "nodeType": "YulAssignment", + "src": "4848:62:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4882:9:37", + "nodeType": "YulIdentifier", + "src": "4882:9:37" + }, + { + "name": "offset", + "nativeSrc": "4893:6:37", + "nodeType": "YulIdentifier", + "src": "4893:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4878:3:37", + "nodeType": "YulIdentifier", + "src": "4878:3:37" + }, + "nativeSrc": "4878:22:37", + "nodeType": "YulFunctionCall", + "src": "4878:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4902:7:37", + "nodeType": "YulIdentifier", + "src": "4902:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint48", + "nativeSrc": "4858:19:37", + "nodeType": "YulIdentifier", + "src": "4858:19:37" + }, + "nativeSrc": "4858:52:37", + "nodeType": "YulFunctionCall", + "src": "4858:52:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4848:6:37", + "nodeType": "YulIdentifier", + "src": "4848:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint48", + "nativeSrc": "4600:327:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4635:9:37", + "nodeType": "YulTypedName", + "src": "4635:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4646:7:37", + "nodeType": "YulTypedName", + "src": "4646:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4658:6:37", + "nodeType": "YulTypedName", + "src": "4658:6:37", + "type": "" + } + ], + "src": "4600:327:37" + }, + { + "body": { + "nativeSrc": "4965:28:37", + "nodeType": "YulBlock", + "src": "4965:28:37", + "statements": [ + { + "nativeSrc": "4975:12:37", + "nodeType": "YulAssignment", + "src": "4975:12:37", + "value": { + "name": "value", + "nativeSrc": "4982:5:37", + "nodeType": "YulIdentifier", + "src": "4982:5:37" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4975:3:37", + "nodeType": "YulIdentifier", + "src": "4975:3:37" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "4933:60:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4951:5:37", + "nodeType": "YulTypedName", + "src": "4951:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4961:3:37", + "nodeType": "YulTypedName", + "src": "4961:3:37", + "type": "" + } + ], + "src": "4933:60:37" + }, + { + "body": { + "nativeSrc": "5059:82:37", + "nodeType": "YulBlock", + "src": "5059:82:37", + "statements": [ + { + "nativeSrc": "5069:66:37", + "nodeType": "YulAssignment", + "src": "5069:66:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5127:5:37", + "nodeType": "YulIdentifier", + "src": "5127:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "5109:17:37", + "nodeType": "YulIdentifier", + "src": "5109:17:37" + }, + "nativeSrc": "5109:24:37", + "nodeType": "YulFunctionCall", + "src": "5109:24:37" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "5100:8:37", + "nodeType": "YulIdentifier", + "src": "5100:8:37" + }, + "nativeSrc": "5100:34:37", + "nodeType": "YulFunctionCall", + "src": "5100:34:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "5082:17:37", + "nodeType": "YulIdentifier", + "src": "5082:17:37" + }, + "nativeSrc": "5082:53:37", + "nodeType": "YulFunctionCall", + "src": "5082:53:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "5069:9:37", + "nodeType": "YulIdentifier", + "src": "5069:9:37" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "4999:142:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5039:5:37", + "nodeType": "YulTypedName", + "src": "5039:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "5049:9:37", + "nodeType": "YulTypedName", + "src": "5049:9:37", + "type": "" + } + ], + "src": "4999:142:37" + }, + { + "body": { + "nativeSrc": "5207:66:37", + "nodeType": "YulBlock", + "src": "5207:66:37", + "statements": [ + { + "nativeSrc": "5217:50:37", + "nodeType": "YulAssignment", + "src": "5217:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5261:5:37", + "nodeType": "YulIdentifier", + "src": "5261:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "5230:30:37", + "nodeType": "YulIdentifier", + "src": "5230:30:37" + }, + "nativeSrc": "5230:37:37", + "nodeType": "YulFunctionCall", + "src": "5230:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "5217:9:37", + "nodeType": "YulIdentifier", + "src": "5217:9:37" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "5147:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5187:5:37", + "nodeType": "YulTypedName", + "src": "5187:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "5197:9:37", + "nodeType": "YulTypedName", + "src": "5197:9:37", + "type": "" + } + ], + "src": "5147:126:37" + }, + { + "body": { + "nativeSrc": "5360:66:37", + "nodeType": "YulBlock", + "src": "5360:66:37", + "statements": [ + { + "nativeSrc": "5370:50:37", + "nodeType": "YulAssignment", + "src": "5370:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5414:5:37", + "nodeType": "YulIdentifier", + "src": "5414:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "5383:30:37", + "nodeType": "YulIdentifier", + "src": "5383:30:37" + }, + "nativeSrc": "5383:37:37", + "nodeType": "YulFunctionCall", + "src": "5383:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "5370:9:37", + "nodeType": "YulIdentifier", + "src": "5370:9:37" + } + ] + } + ] + }, + "name": "convert_t_contract$_ISciRegistry_$7088_to_t_address", + "nativeSrc": "5279:147:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5340:5:37", + "nodeType": "YulTypedName", + "src": "5340:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "5350:9:37", + "nodeType": "YulTypedName", + "src": "5350:9:37", + "type": "" + } + ], + "src": "5279:147:37" + }, + { + "body": { + "nativeSrc": "5518:87:37", + "nodeType": "YulBlock", + "src": "5518:87:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5535:3:37", + "nodeType": "YulIdentifier", + "src": "5535:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5592:5:37", + "nodeType": "YulIdentifier", + "src": "5592:5:37" + } + ], + "functionName": { + "name": "convert_t_contract$_ISciRegistry_$7088_to_t_address", + "nativeSrc": "5540:51:37", + "nodeType": "YulIdentifier", + "src": "5540:51:37" + }, + "nativeSrc": "5540:58:37", + "nodeType": "YulFunctionCall", + "src": "5540:58:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5528:6:37", + "nodeType": "YulIdentifier", + "src": "5528:6:37" + }, + "nativeSrc": "5528:71:37", + "nodeType": "YulFunctionCall", + "src": "5528:71:37" + }, + "nativeSrc": "5528:71:37", + "nodeType": "YulExpressionStatement", + "src": "5528:71:37" + } + ] + }, + "name": "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack", + "nativeSrc": "5432:173:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5506:5:37", + "nodeType": "YulTypedName", + "src": "5506:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5513:3:37", + "nodeType": "YulTypedName", + "src": "5513:3:37", + "type": "" + } + ], + "src": "5432:173:37" + }, + { + "body": { + "nativeSrc": "5730:145:37", + "nodeType": "YulBlock", + "src": "5730:145:37", + "statements": [ + { + "nativeSrc": "5740:26:37", + "nodeType": "YulAssignment", + "src": "5740:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5752:9:37", + "nodeType": "YulIdentifier", + "src": "5752:9:37" + }, + { + "kind": "number", + "nativeSrc": "5763:2:37", + "nodeType": "YulLiteral", + "src": "5763:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5748:3:37", + "nodeType": "YulIdentifier", + "src": "5748:3:37" + }, + "nativeSrc": "5748:18:37", + "nodeType": "YulFunctionCall", + "src": "5748:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5740:4:37", + "nodeType": "YulIdentifier", + "src": "5740:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5841:6:37", + "nodeType": "YulIdentifier", + "src": "5841:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5854:9:37", + "nodeType": "YulIdentifier", + "src": "5854:9:37" + }, + { + "kind": "number", + "nativeSrc": "5865:1:37", + "nodeType": "YulLiteral", + "src": "5865:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5850:3:37", + "nodeType": "YulIdentifier", + "src": "5850:3:37" + }, + "nativeSrc": "5850:17:37", + "nodeType": "YulFunctionCall", + "src": "5850:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack", + "nativeSrc": "5776:64:37", + "nodeType": "YulIdentifier", + "src": "5776:64:37" + }, + "nativeSrc": "5776:92:37", + "nodeType": "YulFunctionCall", + "src": "5776:92:37" + }, + "nativeSrc": "5776:92:37", + "nodeType": "YulExpressionStatement", + "src": "5776:92:37" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed", + "nativeSrc": "5611:264:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5702:9:37", + "nodeType": "YulTypedName", + "src": "5702:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5714:6:37", + "nodeType": "YulTypedName", + "src": "5714:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5725:4:37", + "nodeType": "YulTypedName", + "src": "5725:4:37", + "type": "" + } + ], + "src": "5611:264:37" + }, + { + "body": { + "nativeSrc": "5946:53:37", + "nodeType": "YulBlock", + "src": "5946:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5963:3:37", + "nodeType": "YulIdentifier", + "src": "5963:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5986:5:37", + "nodeType": "YulIdentifier", + "src": "5986:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "5968:17:37", + "nodeType": "YulIdentifier", + "src": "5968:17:37" + }, + "nativeSrc": "5968:24:37", + "nodeType": "YulFunctionCall", + "src": "5968:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5956:6:37", + "nodeType": "YulIdentifier", + "src": "5956:6:37" + }, + "nativeSrc": "5956:37:37", + "nodeType": "YulFunctionCall", + "src": "5956:37:37" + }, + "nativeSrc": "5956:37:37", + "nodeType": "YulExpressionStatement", + "src": "5956:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "5881:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5934:5:37", + "nodeType": "YulTypedName", + "src": "5934:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5941:3:37", + "nodeType": "YulTypedName", + "src": "5941:3:37", + "type": "" + } + ], + "src": "5881:118:37" + }, + { + "body": { + "nativeSrc": "6103:124:37", + "nodeType": "YulBlock", + "src": "6103:124:37", + "statements": [ + { + "nativeSrc": "6113:26:37", + "nodeType": "YulAssignment", + "src": "6113:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6125:9:37", + "nodeType": "YulIdentifier", + "src": "6125:9:37" + }, + { + "kind": "number", + "nativeSrc": "6136:2:37", + "nodeType": "YulLiteral", + "src": "6136:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6121:3:37", + "nodeType": "YulIdentifier", + "src": "6121:3:37" + }, + "nativeSrc": "6121:18:37", + "nodeType": "YulFunctionCall", + "src": "6121:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6113:4:37", + "nodeType": "YulIdentifier", + "src": "6113:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6193:6:37", + "nodeType": "YulIdentifier", + "src": "6193:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6206:9:37", + "nodeType": "YulIdentifier", + "src": "6206:9:37" + }, + { + "kind": "number", + "nativeSrc": "6217:1:37", + "nodeType": "YulLiteral", + "src": "6217:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6202:3:37", + "nodeType": "YulIdentifier", + "src": "6202:3:37" + }, + "nativeSrc": "6202:17:37", + "nodeType": "YulFunctionCall", + "src": "6202:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "6149:43:37", + "nodeType": "YulIdentifier", + "src": "6149:43:37" + }, + "nativeSrc": "6149:71:37", + "nodeType": "YulFunctionCall", + "src": "6149:71:37" + }, + "nativeSrc": "6149:71:37", + "nodeType": "YulExpressionStatement", + "src": "6149:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "6005:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6075:9:37", + "nodeType": "YulTypedName", + "src": "6075:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6087:6:37", + "nodeType": "YulTypedName", + "src": "6087:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6098:4:37", + "nodeType": "YulTypedName", + "src": "6098:4:37", + "type": "" + } + ], + "src": "6005:222:37" + }, + { + "body": { + "nativeSrc": "6355:202:37", + "nodeType": "YulBlock", + "src": "6355:202:37", + "statements": [ + { + "nativeSrc": "6365:26:37", + "nodeType": "YulAssignment", + "src": "6365:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6377:9:37", + "nodeType": "YulIdentifier", + "src": "6377:9:37" + }, + { + "kind": "number", + "nativeSrc": "6388:2:37", + "nodeType": "YulLiteral", + "src": "6388:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6373:3:37", + "nodeType": "YulIdentifier", + "src": "6373:3:37" + }, + "nativeSrc": "6373:18:37", + "nodeType": "YulFunctionCall", + "src": "6373:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6365:4:37", + "nodeType": "YulIdentifier", + "src": "6365:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6443:6:37", + "nodeType": "YulIdentifier", + "src": "6443:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6456:9:37", + "nodeType": "YulIdentifier", + "src": "6456:9:37" + }, + { + "kind": "number", + "nativeSrc": "6467:1:37", + "nodeType": "YulLiteral", + "src": "6467:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6452:3:37", + "nodeType": "YulIdentifier", + "src": "6452:3:37" + }, + "nativeSrc": "6452:17:37", + "nodeType": "YulFunctionCall", + "src": "6452:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint48_to_t_uint48_fromStack", + "nativeSrc": "6401:41:37", + "nodeType": "YulIdentifier", + "src": "6401:41:37" + }, + "nativeSrc": "6401:69:37", + "nodeType": "YulFunctionCall", + "src": "6401:69:37" + }, + "nativeSrc": "6401:69:37", + "nodeType": "YulExpressionStatement", + "src": "6401:69:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "6522:6:37", + "nodeType": "YulIdentifier", + "src": "6522:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6535:9:37", + "nodeType": "YulIdentifier", + "src": "6535:9:37" + }, + { + "kind": "number", + "nativeSrc": "6546:2:37", + "nodeType": "YulLiteral", + "src": "6546:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6531:3:37", + "nodeType": "YulIdentifier", + "src": "6531:3:37" + }, + "nativeSrc": "6531:18:37", + "nodeType": "YulFunctionCall", + "src": "6531:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint48_to_t_uint48_fromStack", + "nativeSrc": "6480:41:37", + "nodeType": "YulIdentifier", + "src": "6480:41:37" + }, + "nativeSrc": "6480:70:37", + "nodeType": "YulFunctionCall", + "src": "6480:70:37" + }, + "nativeSrc": "6480:70:37", + "nodeType": "YulExpressionStatement", + "src": "6480:70:37" + } + ] + }, + "name": "abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed", + "nativeSrc": "6233:324:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6319:9:37", + "nodeType": "YulTypedName", + "src": "6319:9:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6331:6:37", + "nodeType": "YulTypedName", + "src": "6331:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6339:6:37", + "nodeType": "YulTypedName", + "src": "6339:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6350:4:37", + "nodeType": "YulTypedName", + "src": "6350:4:37", + "type": "" + } + ], + "src": "6233:324:37" + }, + { + "body": { + "nativeSrc": "6646:391:37", + "nodeType": "YulBlock", + "src": "6646:391:37", + "statements": [ + { + "body": { + "nativeSrc": "6692:83:37", + "nodeType": "YulBlock", + "src": "6692:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "6694:77:37", + "nodeType": "YulIdentifier", + "src": "6694:77:37" + }, + "nativeSrc": "6694:79:37", + "nodeType": "YulFunctionCall", + "src": "6694:79:37" + }, + "nativeSrc": "6694:79:37", + "nodeType": "YulExpressionStatement", + "src": "6694:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6667:7:37", + "nodeType": "YulIdentifier", + "src": "6667:7:37" + }, + { + "name": "headStart", + "nativeSrc": "6676:9:37", + "nodeType": "YulIdentifier", + "src": "6676:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6663:3:37", + "nodeType": "YulIdentifier", + "src": "6663:3:37" + }, + "nativeSrc": "6663:23:37", + "nodeType": "YulFunctionCall", + "src": "6663:23:37" + }, + { + "kind": "number", + "nativeSrc": "6688:2:37", + "nodeType": "YulLiteral", + "src": "6688:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6659:3:37", + "nodeType": "YulIdentifier", + "src": "6659:3:37" + }, + "nativeSrc": "6659:32:37", + "nodeType": "YulFunctionCall", + "src": "6659:32:37" + }, + "nativeSrc": "6656:119:37", + "nodeType": "YulIf", + "src": "6656:119:37" + }, + { + "nativeSrc": "6785:117:37", + "nodeType": "YulBlock", + "src": "6785:117:37", + "statements": [ + { + "nativeSrc": "6800:15:37", + "nodeType": "YulVariableDeclaration", + "src": "6800:15:37", + "value": { + "kind": "number", + "nativeSrc": "6814:1:37", + "nodeType": "YulLiteral", + "src": "6814:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6804:6:37", + "nodeType": "YulTypedName", + "src": "6804:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6829:63:37", + "nodeType": "YulAssignment", + "src": "6829:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6864:9:37", + "nodeType": "YulIdentifier", + "src": "6864:9:37" + }, + { + "name": "offset", + "nativeSrc": "6875:6:37", + "nodeType": "YulIdentifier", + "src": "6875:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6860:3:37", + "nodeType": "YulIdentifier", + "src": "6860:3:37" + }, + "nativeSrc": "6860:22:37", + "nodeType": "YulFunctionCall", + "src": "6860:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "6884:7:37", + "nodeType": "YulIdentifier", + "src": "6884:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6839:20:37", + "nodeType": "YulIdentifier", + "src": "6839:20:37" + }, + "nativeSrc": "6839:53:37", + "nodeType": "YulFunctionCall", + "src": "6839:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6829:6:37", + "nodeType": "YulIdentifier", + "src": "6829:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "6912:118:37", + "nodeType": "YulBlock", + "src": "6912:118:37", + "statements": [ + { + "nativeSrc": "6927:16:37", + "nodeType": "YulVariableDeclaration", + "src": "6927:16:37", + "value": { + "kind": "number", + "nativeSrc": "6941:2:37", + "nodeType": "YulLiteral", + "src": "6941:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6931:6:37", + "nodeType": "YulTypedName", + "src": "6931:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6957:63:37", + "nodeType": "YulAssignment", + "src": "6957:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6992:9:37", + "nodeType": "YulIdentifier", + "src": "6992:9:37" + }, + { + "name": "offset", + "nativeSrc": "7003:6:37", + "nodeType": "YulIdentifier", + "src": "7003:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6988:3:37", + "nodeType": "YulIdentifier", + "src": "6988:3:37" + }, + "nativeSrc": "6988:22:37", + "nodeType": "YulFunctionCall", + "src": "6988:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "7012:7:37", + "nodeType": "YulIdentifier", + "src": "7012:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "6967:20:37", + "nodeType": "YulIdentifier", + "src": "6967:20:37" + }, + "nativeSrc": "6967:53:37", + "nodeType": "YulFunctionCall", + "src": "6967:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "6957:6:37", + "nodeType": "YulIdentifier", + "src": "6957:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bytes32", + "nativeSrc": "6563:474:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6608:9:37", + "nodeType": "YulTypedName", + "src": "6608:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "6619:7:37", + "nodeType": "YulTypedName", + "src": "6619:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6631:6:37", + "nodeType": "YulTypedName", + "src": "6631:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6639:6:37", + "nodeType": "YulTypedName", + "src": "6639:6:37", + "type": "" + } + ], + "src": "6563:474:37" + }, + { + "body": { + "nativeSrc": "7167:204:37", + "nodeType": "YulBlock", + "src": "7167:204:37", + "statements": [ + { + "nativeSrc": "7177:26:37", + "nodeType": "YulAssignment", + "src": "7177:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7189:9:37", + "nodeType": "YulIdentifier", + "src": "7189:9:37" + }, + { + "kind": "number", + "nativeSrc": "7200:2:37", + "nodeType": "YulLiteral", + "src": "7200:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7185:3:37", + "nodeType": "YulIdentifier", + "src": "7185:3:37" + }, + "nativeSrc": "7185:18:37", + "nodeType": "YulFunctionCall", + "src": "7185:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7177:4:37", + "nodeType": "YulIdentifier", + "src": "7177:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7257:6:37", + "nodeType": "YulIdentifier", + "src": "7257:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7270:9:37", + "nodeType": "YulIdentifier", + "src": "7270:9:37" + }, + { + "kind": "number", + "nativeSrc": "7281:1:37", + "nodeType": "YulLiteral", + "src": "7281:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7266:3:37", + "nodeType": "YulIdentifier", + "src": "7266:3:37" + }, + "nativeSrc": "7266:17:37", + "nodeType": "YulFunctionCall", + "src": "7266:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "7213:43:37", + "nodeType": "YulIdentifier", + "src": "7213:43:37" + }, + "nativeSrc": "7213:71:37", + "nodeType": "YulFunctionCall", + "src": "7213:71:37" + }, + "nativeSrc": "7213:71:37", + "nodeType": "YulExpressionStatement", + "src": "7213:71:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "7336:6:37", + "nodeType": "YulIdentifier", + "src": "7336:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7349:9:37", + "nodeType": "YulIdentifier", + "src": "7349:9:37" + }, + { + "kind": "number", + "nativeSrc": "7360:2:37", + "nodeType": "YulLiteral", + "src": "7360:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7345:3:37", + "nodeType": "YulIdentifier", + "src": "7345:3:37" + }, + "nativeSrc": "7345:18:37", + "nodeType": "YulFunctionCall", + "src": "7345:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint48_to_t_uint48_fromStack", + "nativeSrc": "7294:41:37", + "nodeType": "YulIdentifier", + "src": "7294:41:37" + }, + "nativeSrc": "7294:70:37", + "nodeType": "YulFunctionCall", + "src": "7294:70:37" + }, + "nativeSrc": "7294:70:37", + "nodeType": "YulExpressionStatement", + "src": "7294:70:37" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed", + "nativeSrc": "7043:328:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7131:9:37", + "nodeType": "YulTypedName", + "src": "7131:9:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "7143:6:37", + "nodeType": "YulTypedName", + "src": "7143:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7151:6:37", + "nodeType": "YulTypedName", + "src": "7151:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7162:4:37", + "nodeType": "YulTypedName", + "src": "7162:4:37", + "type": "" + } + ], + "src": "7043:328:37" + }, + { + "body": { + "nativeSrc": "7440:51:37", + "nodeType": "YulBlock", + "src": "7440:51:37", + "statements": [ + { + "nativeSrc": "7450:35:37", + "nodeType": "YulAssignment", + "src": "7450:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "7479:5:37", + "nodeType": "YulIdentifier", + "src": "7479:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "7461:17:37", + "nodeType": "YulIdentifier", + "src": "7461:17:37" + }, + "nativeSrc": "7461:24:37", + "nodeType": "YulFunctionCall", + "src": "7461:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "7450:7:37", + "nodeType": "YulIdentifier", + "src": "7450:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_contract$_IVerifier_$7453", + "nativeSrc": "7377:114:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7422:5:37", + "nodeType": "YulTypedName", + "src": "7422:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "7432:7:37", + "nodeType": "YulTypedName", + "src": "7432:7:37", + "type": "" + } + ], + "src": "7377:114:37" + }, + { + "body": { + "nativeSrc": "7558:97:37", + "nodeType": "YulBlock", + "src": "7558:97:37", + "statements": [ + { + "body": { + "nativeSrc": "7633:16:37", + "nodeType": "YulBlock", + "src": "7633:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7642:1:37", + "nodeType": "YulLiteral", + "src": "7642:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7645:1:37", + "nodeType": "YulLiteral", + "src": "7645:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7635:6:37", + "nodeType": "YulIdentifier", + "src": "7635:6:37" + }, + "nativeSrc": "7635:12:37", + "nodeType": "YulFunctionCall", + "src": "7635:12:37" + }, + "nativeSrc": "7635:12:37", + "nodeType": "YulExpressionStatement", + "src": "7635:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7581:5:37", + "nodeType": "YulIdentifier", + "src": "7581:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7624:5:37", + "nodeType": "YulIdentifier", + "src": "7624:5:37" + } + ], + "functionName": { + "name": "cleanup_t_contract$_IVerifier_$7453", + "nativeSrc": "7588:35:37", + "nodeType": "YulIdentifier", + "src": "7588:35:37" + }, + "nativeSrc": "7588:42:37", + "nodeType": "YulFunctionCall", + "src": "7588:42:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "7578:2:37", + "nodeType": "YulIdentifier", + "src": "7578:2:37" + }, + "nativeSrc": "7578:53:37", + "nodeType": "YulFunctionCall", + "src": "7578:53:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7571:6:37", + "nodeType": "YulIdentifier", + "src": "7571:6:37" + }, + "nativeSrc": "7571:61:37", + "nodeType": "YulFunctionCall", + "src": "7571:61:37" + }, + "nativeSrc": "7568:81:37", + "nodeType": "YulIf", + "src": "7568:81:37" + } + ] + }, + "name": "validator_revert_t_contract$_IVerifier_$7453", + "nativeSrc": "7497:158:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7551:5:37", + "nodeType": "YulTypedName", + "src": "7551:5:37", + "type": "" + } + ], + "src": "7497:158:37" + }, + { + "body": { + "nativeSrc": "7731:105:37", + "nodeType": "YulBlock", + "src": "7731:105:37", + "statements": [ + { + "nativeSrc": "7741:29:37", + "nodeType": "YulAssignment", + "src": "7741:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7763:6:37", + "nodeType": "YulIdentifier", + "src": "7763:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7750:12:37", + "nodeType": "YulIdentifier", + "src": "7750:12:37" + }, + "nativeSrc": "7750:20:37", + "nodeType": "YulFunctionCall", + "src": "7750:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "7741:5:37", + "nodeType": "YulIdentifier", + "src": "7741:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "7824:5:37", + "nodeType": "YulIdentifier", + "src": "7824:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_contract$_IVerifier_$7453", + "nativeSrc": "7779:44:37", + "nodeType": "YulIdentifier", + "src": "7779:44:37" + }, + "nativeSrc": "7779:51:37", + "nodeType": "YulFunctionCall", + "src": "7779:51:37" + }, + "nativeSrc": "7779:51:37", + "nodeType": "YulExpressionStatement", + "src": "7779:51:37" + } + ] + }, + "name": "abi_decode_t_contract$_IVerifier_$7453", + "nativeSrc": "7661:175:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "7709:6:37", + "nodeType": "YulTypedName", + "src": "7709:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7717:3:37", + "nodeType": "YulTypedName", + "src": "7717:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "7725:5:37", + "nodeType": "YulTypedName", + "src": "7725:5:37", + "type": "" + } + ], + "src": "7661:175:37" + }, + { + "body": { + "nativeSrc": "7960:537:37", + "nodeType": "YulBlock", + "src": "7960:537:37", + "statements": [ + { + "body": { + "nativeSrc": "8006:83:37", + "nodeType": "YulBlock", + "src": "8006:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "8008:77:37", + "nodeType": "YulIdentifier", + "src": "8008:77:37" + }, + "nativeSrc": "8008:79:37", + "nodeType": "YulFunctionCall", + "src": "8008:79:37" + }, + "nativeSrc": "8008:79:37", + "nodeType": "YulExpressionStatement", + "src": "8008:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "7981:7:37", + "nodeType": "YulIdentifier", + "src": "7981:7:37" + }, + { + "name": "headStart", + "nativeSrc": "7990:9:37", + "nodeType": "YulIdentifier", + "src": "7990:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7977:3:37", + "nodeType": "YulIdentifier", + "src": "7977:3:37" + }, + "nativeSrc": "7977:23:37", + "nodeType": "YulFunctionCall", + "src": "7977:23:37" + }, + { + "kind": "number", + "nativeSrc": "8002:2:37", + "nodeType": "YulLiteral", + "src": "8002:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7973:3:37", + "nodeType": "YulIdentifier", + "src": "7973:3:37" + }, + "nativeSrc": "7973:32:37", + "nodeType": "YulFunctionCall", + "src": "7973:32:37" + }, + "nativeSrc": "7970:119:37", + "nodeType": "YulIf", + "src": "7970:119:37" + }, + { + "nativeSrc": "8099:117:37", + "nodeType": "YulBlock", + "src": "8099:117:37", + "statements": [ + { + "nativeSrc": "8114:15:37", + "nodeType": "YulVariableDeclaration", + "src": "8114:15:37", + "value": { + "kind": "number", + "nativeSrc": "8128:1:37", + "nodeType": "YulLiteral", + "src": "8128:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8118:6:37", + "nodeType": "YulTypedName", + "src": "8118:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "8143:63:37", + "nodeType": "YulAssignment", + "src": "8143:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8178:9:37", + "nodeType": "YulIdentifier", + "src": "8178:9:37" + }, + { + "name": "offset", + "nativeSrc": "8189:6:37", + "nodeType": "YulIdentifier", + "src": "8189:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8174:3:37", + "nodeType": "YulIdentifier", + "src": "8174:3:37" + }, + "nativeSrc": "8174:22:37", + "nodeType": "YulFunctionCall", + "src": "8174:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "8198:7:37", + "nodeType": "YulIdentifier", + "src": "8198:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "8153:20:37", + "nodeType": "YulIdentifier", + "src": "8153:20:37" + }, + "nativeSrc": "8153:53:37", + "nodeType": "YulFunctionCall", + "src": "8153:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8143:6:37", + "nodeType": "YulIdentifier", + "src": "8143:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "8226:118:37", + "nodeType": "YulBlock", + "src": "8226:118:37", + "statements": [ + { + "nativeSrc": "8241:16:37", + "nodeType": "YulVariableDeclaration", + "src": "8241:16:37", + "value": { + "kind": "number", + "nativeSrc": "8255:2:37", + "nodeType": "YulLiteral", + "src": "8255:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8245:6:37", + "nodeType": "YulTypedName", + "src": "8245:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "8271:63:37", + "nodeType": "YulAssignment", + "src": "8271:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8306:9:37", + "nodeType": "YulIdentifier", + "src": "8306:9:37" + }, + { + "name": "offset", + "nativeSrc": "8317:6:37", + "nodeType": "YulIdentifier", + "src": "8317:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8302:3:37", + "nodeType": "YulIdentifier", + "src": "8302:3:37" + }, + "nativeSrc": "8302:22:37", + "nodeType": "YulFunctionCall", + "src": "8302:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "8326:7:37", + "nodeType": "YulIdentifier", + "src": "8326:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "8281:20:37", + "nodeType": "YulIdentifier", + "src": "8281:20:37" + }, + "nativeSrc": "8281:53:37", + "nodeType": "YulFunctionCall", + "src": "8281:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "8271:6:37", + "nodeType": "YulIdentifier", + "src": "8271:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "8354:136:37", + "nodeType": "YulBlock", + "src": "8354:136:37", + "statements": [ + { + "nativeSrc": "8369:16:37", + "nodeType": "YulVariableDeclaration", + "src": "8369:16:37", + "value": { + "kind": "number", + "nativeSrc": "8383:2:37", + "nodeType": "YulLiteral", + "src": "8383:2:37", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8373:6:37", + "nodeType": "YulTypedName", + "src": "8373:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "8399:81:37", + "nodeType": "YulAssignment", + "src": "8399:81:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8452:9:37", + "nodeType": "YulIdentifier", + "src": "8452:9:37" + }, + { + "name": "offset", + "nativeSrc": "8463:6:37", + "nodeType": "YulIdentifier", + "src": "8463:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8448:3:37", + "nodeType": "YulIdentifier", + "src": "8448:3:37" + }, + "nativeSrc": "8448:22:37", + "nodeType": "YulFunctionCall", + "src": "8448:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "8472:7:37", + "nodeType": "YulIdentifier", + "src": "8472:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IVerifier_$7453", + "nativeSrc": "8409:38:37", + "nodeType": "YulIdentifier", + "src": "8409:38:37" + }, + "nativeSrc": "8409:71:37", + "nodeType": "YulFunctionCall", + "src": "8409:71:37" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "8399:6:37", + "nodeType": "YulIdentifier", + "src": "8399:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$7453", + "nativeSrc": "7842:655:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7914:9:37", + "nodeType": "YulTypedName", + "src": "7914:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7925:7:37", + "nodeType": "YulTypedName", + "src": "7925:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "7937:6:37", + "nodeType": "YulTypedName", + "src": "7937:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "7945:6:37", + "nodeType": "YulTypedName", + "src": "7945:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "7953:6:37", + "nodeType": "YulTypedName", + "src": "7953:6:37", + "type": "" + } + ], + "src": "7842:655:37" + }, + { + "body": { + "nativeSrc": "8629:206:37", + "nodeType": "YulBlock", + "src": "8629:206:37", + "statements": [ + { + "nativeSrc": "8639:26:37", + "nodeType": "YulAssignment", + "src": "8639:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8651:9:37", + "nodeType": "YulIdentifier", + "src": "8651:9:37" + }, + { + "kind": "number", + "nativeSrc": "8662:2:37", + "nodeType": "YulLiteral", + "src": "8662:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8647:3:37", + "nodeType": "YulIdentifier", + "src": "8647:3:37" + }, + "nativeSrc": "8647:18:37", + "nodeType": "YulFunctionCall", + "src": "8647:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8639:4:37", + "nodeType": "YulIdentifier", + "src": "8639:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8719:6:37", + "nodeType": "YulIdentifier", + "src": "8719:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8732:9:37", + "nodeType": "YulIdentifier", + "src": "8732:9:37" + }, + { + "kind": "number", + "nativeSrc": "8743:1:37", + "nodeType": "YulLiteral", + "src": "8743:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8728:3:37", + "nodeType": "YulIdentifier", + "src": "8728:3:37" + }, + "nativeSrc": "8728:17:37", + "nodeType": "YulFunctionCall", + "src": "8728:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "8675:43:37", + "nodeType": "YulIdentifier", + "src": "8675:43:37" + }, + "nativeSrc": "8675:71:37", + "nodeType": "YulFunctionCall", + "src": "8675:71:37" + }, + "nativeSrc": "8675:71:37", + "nodeType": "YulExpressionStatement", + "src": "8675:71:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "8800:6:37", + "nodeType": "YulIdentifier", + "src": "8800:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8813:9:37", + "nodeType": "YulIdentifier", + "src": "8813:9:37" + }, + { + "kind": "number", + "nativeSrc": "8824:2:37", + "nodeType": "YulLiteral", + "src": "8824:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8809:3:37", + "nodeType": "YulIdentifier", + "src": "8809:3:37" + }, + "nativeSrc": "8809:18:37", + "nodeType": "YulFunctionCall", + "src": "8809:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "8756:43:37", + "nodeType": "YulIdentifier", + "src": "8756:43:37" + }, + "nativeSrc": "8756:72:37", + "nodeType": "YulFunctionCall", + "src": "8756:72:37" + }, + "nativeSrc": "8756:72:37", + "nodeType": "YulExpressionStatement", + "src": "8756:72:37" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", + "nativeSrc": "8503:332:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8593:9:37", + "nodeType": "YulTypedName", + "src": "8593:9:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8605:6:37", + "nodeType": "YulTypedName", + "src": "8605:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8613:6:37", + "nodeType": "YulTypedName", + "src": "8613:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8624:4:37", + "nodeType": "YulTypedName", + "src": "8624:4:37", + "type": "" + } + ], + "src": "8503:332:37" + }, + { + "body": { + "nativeSrc": "8919:66:37", + "nodeType": "YulBlock", + "src": "8919:66:37", + "statements": [ + { + "nativeSrc": "8929:50:37", + "nodeType": "YulAssignment", + "src": "8929:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8973:5:37", + "nodeType": "YulIdentifier", + "src": "8973:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "8942:30:37", + "nodeType": "YulIdentifier", + "src": "8942:30:37" + }, + "nativeSrc": "8942:37:37", + "nodeType": "YulFunctionCall", + "src": "8942:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "8929:9:37", + "nodeType": "YulIdentifier", + "src": "8929:9:37" + } + ] + } + ] + }, + "name": "convert_t_contract$_IVerifier_$7453_to_t_address", + "nativeSrc": "8841:144:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8899:5:37", + "nodeType": "YulTypedName", + "src": "8899:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "8909:9:37", + "nodeType": "YulTypedName", + "src": "8909:9:37", + "type": "" + } + ], + "src": "8841:144:37" + }, + { + "body": { + "nativeSrc": "9074:84:37", + "nodeType": "YulBlock", + "src": "9074:84:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9091:3:37", + "nodeType": "YulIdentifier", + "src": "9091:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "9145:5:37", + "nodeType": "YulIdentifier", + "src": "9145:5:37" + } + ], + "functionName": { + "name": "convert_t_contract$_IVerifier_$7453_to_t_address", + "nativeSrc": "9096:48:37", + "nodeType": "YulIdentifier", + "src": "9096:48:37" + }, + "nativeSrc": "9096:55:37", + "nodeType": "YulFunctionCall", + "src": "9096:55:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9084:6:37", + "nodeType": "YulIdentifier", + "src": "9084:6:37" + }, + "nativeSrc": "9084:68:37", + "nodeType": "YulFunctionCall", + "src": "9084:68:37" + }, + "nativeSrc": "9084:68:37", + "nodeType": "YulExpressionStatement", + "src": "9084:68:37" + } + ] + }, + "name": "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack", + "nativeSrc": "8991:167:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "9062:5:37", + "nodeType": "YulTypedName", + "src": "9062:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "9069:3:37", + "nodeType": "YulTypedName", + "src": "9069:3:37", + "type": "" + } + ], + "src": "8991:167:37" + }, + { + "body": { + "nativeSrc": "9336:306:37", + "nodeType": "YulBlock", + "src": "9336:306:37", + "statements": [ + { + "nativeSrc": "9346:26:37", + "nodeType": "YulAssignment", + "src": "9346:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9358:9:37", + "nodeType": "YulIdentifier", + "src": "9358:9:37" + }, + { + "kind": "number", + "nativeSrc": "9369:2:37", + "nodeType": "YulLiteral", + "src": "9369:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9354:3:37", + "nodeType": "YulIdentifier", + "src": "9354:3:37" + }, + "nativeSrc": "9354:18:37", + "nodeType": "YulFunctionCall", + "src": "9354:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9346:4:37", + "nodeType": "YulIdentifier", + "src": "9346:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "9426:6:37", + "nodeType": "YulIdentifier", + "src": "9426:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9439:9:37", + "nodeType": "YulIdentifier", + "src": "9439:9:37" + }, + { + "kind": "number", + "nativeSrc": "9450:1:37", + "nodeType": "YulLiteral", + "src": "9450:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9435:3:37", + "nodeType": "YulIdentifier", + "src": "9435:3:37" + }, + "nativeSrc": "9435:17:37", + "nodeType": "YulFunctionCall", + "src": "9435:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "9382:43:37", + "nodeType": "YulIdentifier", + "src": "9382:43:37" + }, + "nativeSrc": "9382:71:37", + "nodeType": "YulFunctionCall", + "src": "9382:71:37" + }, + "nativeSrc": "9382:71:37", + "nodeType": "YulExpressionStatement", + "src": "9382:71:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "9507:6:37", + "nodeType": "YulIdentifier", + "src": "9507:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9520:9:37", + "nodeType": "YulIdentifier", + "src": "9520:9:37" + }, + { + "kind": "number", + "nativeSrc": "9531:2:37", + "nodeType": "YulLiteral", + "src": "9531:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9516:3:37", + "nodeType": "YulIdentifier", + "src": "9516:3:37" + }, + "nativeSrc": "9516:18:37", + "nodeType": "YulFunctionCall", + "src": "9516:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "9463:43:37", + "nodeType": "YulIdentifier", + "src": "9463:43:37" + }, + "nativeSrc": "9463:72:37", + "nodeType": "YulFunctionCall", + "src": "9463:72:37" + }, + "nativeSrc": "9463:72:37", + "nodeType": "YulExpressionStatement", + "src": "9463:72:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "9607:6:37", + "nodeType": "YulIdentifier", + "src": "9607:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9620:9:37", + "nodeType": "YulIdentifier", + "src": "9620:9:37" + }, + { + "kind": "number", + "nativeSrc": "9631:2:37", + "nodeType": "YulLiteral", + "src": "9631:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9616:3:37", + "nodeType": "YulIdentifier", + "src": "9616:3:37" + }, + "nativeSrc": "9616:18:37", + "nodeType": "YulFunctionCall", + "src": "9616:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack", + "nativeSrc": "9545:61:37", + "nodeType": "YulIdentifier", + "src": "9545:61:37" + }, + "nativeSrc": "9545:90:37", + "nodeType": "YulFunctionCall", + "src": "9545:90:37" + }, + "nativeSrc": "9545:90:37", + "nodeType": "YulExpressionStatement", + "src": "9545:90:37" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$7453__to_t_address_t_bytes32_t_address__fromStack_reversed", + "nativeSrc": "9164:478:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9292:9:37", + "nodeType": "YulTypedName", + "src": "9292:9:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "9304:6:37", + "nodeType": "YulTypedName", + "src": "9304:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9312:6:37", + "nodeType": "YulTypedName", + "src": "9312:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "9320:6:37", + "nodeType": "YulTypedName", + "src": "9320:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9331:4:37", + "nodeType": "YulTypedName", + "src": "9331:4:37", + "type": "" + } + ], + "src": "9164:478:37" + }, + { + "body": { + "nativeSrc": "9676:152:37", + "nodeType": "YulBlock", + "src": "9676:152:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9693:1:37", + "nodeType": "YulLiteral", + "src": "9693:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9696:77:37", + "nodeType": "YulLiteral", + "src": "9696:77:37", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9686:6:37", + "nodeType": "YulIdentifier", + "src": "9686:6:37" + }, + "nativeSrc": "9686:88:37", + "nodeType": "YulFunctionCall", + "src": "9686:88:37" + }, + "nativeSrc": "9686:88:37", + "nodeType": "YulExpressionStatement", + "src": "9686:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9790:1:37", + "nodeType": "YulLiteral", + "src": "9790:1:37", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "9793:4:37", + "nodeType": "YulLiteral", + "src": "9793:4:37", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9783:6:37", + "nodeType": "YulIdentifier", + "src": "9783:6:37" + }, + "nativeSrc": "9783:15:37", + "nodeType": "YulFunctionCall", + "src": "9783:15:37" + }, + "nativeSrc": "9783:15:37", + "nodeType": "YulExpressionStatement", + "src": "9783:15:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9814:1:37", + "nodeType": "YulLiteral", + "src": "9814:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9817:4:37", + "nodeType": "YulLiteral", + "src": "9817:4:37", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9807:6:37", + "nodeType": "YulIdentifier", + "src": "9807:6:37" + }, + "nativeSrc": "9807:15:37", + "nodeType": "YulFunctionCall", + "src": "9807:15:37" + }, + "nativeSrc": "9807:15:37", + "nodeType": "YulExpressionStatement", + "src": "9807:15:37" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "9648:180:37", + "nodeType": "YulFunctionDefinition", + "src": "9648:180:37" + }, + { + "body": { + "nativeSrc": "9877:158:37", + "nodeType": "YulBlock", + "src": "9877:158:37", + "statements": [ + { + "nativeSrc": "9887:24:37", + "nodeType": "YulAssignment", + "src": "9887:24:37", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "9909:1:37", + "nodeType": "YulIdentifier", + "src": "9909:1:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "9892:16:37", + "nodeType": "YulIdentifier", + "src": "9892:16:37" + }, + "nativeSrc": "9892:19:37", + "nodeType": "YulFunctionCall", + "src": "9892:19:37" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "9887:1:37", + "nodeType": "YulIdentifier", + "src": "9887:1:37" + } + ] + }, + { + "nativeSrc": "9920:24:37", + "nodeType": "YulAssignment", + "src": "9920:24:37", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "9942:1:37", + "nodeType": "YulIdentifier", + "src": "9942:1:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "9925:16:37", + "nodeType": "YulIdentifier", + "src": "9925:16:37" + }, + "nativeSrc": "9925:19:37", + "nodeType": "YulFunctionCall", + "src": "9925:19:37" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "9920:1:37", + "nodeType": "YulIdentifier", + "src": "9920:1:37" + } + ] + }, + { + "nativeSrc": "9953:16:37", + "nodeType": "YulAssignment", + "src": "9953:16:37", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "9964:1:37", + "nodeType": "YulIdentifier", + "src": "9964:1:37" + }, + { + "name": "y", + "nativeSrc": "9967:1:37", + "nodeType": "YulIdentifier", + "src": "9967:1:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9960:3:37", + "nodeType": "YulIdentifier", + "src": "9960:3:37" + }, + "nativeSrc": "9960:9:37", + "nodeType": "YulFunctionCall", + "src": "9960:9:37" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "9953:3:37", + "nodeType": "YulIdentifier", + "src": "9953:3:37" + } + ] + }, + { + "body": { + "nativeSrc": "10006:22:37", + "nodeType": "YulBlock", + "src": "10006:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "10008:16:37", + "nodeType": "YulIdentifier", + "src": "10008:16:37" + }, + "nativeSrc": "10008:18:37", + "nodeType": "YulFunctionCall", + "src": "10008:18:37" + }, + "nativeSrc": "10008:18:37", + "nodeType": "YulExpressionStatement", + "src": "10008:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "sum", + "nativeSrc": "9985:3:37", + "nodeType": "YulIdentifier", + "src": "9985:3:37" + }, + { + "kind": "number", + "nativeSrc": "9990:14:37", + "nodeType": "YulLiteral", + "src": "9990:14:37", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9982:2:37", + "nodeType": "YulIdentifier", + "src": "9982:2:37" + }, + "nativeSrc": "9982:23:37", + "nodeType": "YulFunctionCall", + "src": "9982:23:37" + }, + "nativeSrc": "9979:49:37", + "nodeType": "YulIf", + "src": "9979:49:37" + } + ] + }, + "name": "checked_add_t_uint48", + "nativeSrc": "9834:201:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "9864:1:37", + "nodeType": "YulTypedName", + "src": "9864:1:37", + "type": "" + }, + { + "name": "y", + "nativeSrc": "9867:1:37", + "nodeType": "YulTypedName", + "src": "9867:1:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "9873:3:37", + "nodeType": "YulTypedName", + "src": "9873:3:37", + "type": "" + } + ], + "src": "9834:201:37" + }, + { + "body": { + "nativeSrc": "10095:32:37", + "nodeType": "YulBlock", + "src": "10095:32:37", + "statements": [ + { + "nativeSrc": "10105:16:37", + "nodeType": "YulAssignment", + "src": "10105:16:37", + "value": { + "name": "value", + "nativeSrc": "10116:5:37", + "nodeType": "YulIdentifier", + "src": "10116:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "10105:7:37", + "nodeType": "YulIdentifier", + "src": "10105:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_rational_48_by_1", + "nativeSrc": "10041:86:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "10077:5:37", + "nodeType": "YulTypedName", + "src": "10077:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "10087:7:37", + "nodeType": "YulTypedName", + "src": "10087:7:37", + "type": "" + } + ], + "src": "10041:86:37" + }, + { + "body": { + "nativeSrc": "10176:43:37", + "nodeType": "YulBlock", + "src": "10176:43:37", + "statements": [ + { + "nativeSrc": "10186:27:37", + "nodeType": "YulAssignment", + "src": "10186:27:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "10201:5:37", + "nodeType": "YulIdentifier", + "src": "10201:5:37" + }, + { + "kind": "number", + "nativeSrc": "10208:4:37", + "nodeType": "YulLiteral", + "src": "10208:4:37", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "10197:3:37", + "nodeType": "YulIdentifier", + "src": "10197:3:37" + }, + "nativeSrc": "10197:16:37", + "nodeType": "YulFunctionCall", + "src": "10197:16:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "10186:7:37", + "nodeType": "YulIdentifier", + "src": "10186:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nativeSrc": "10133:86:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "10158:5:37", + "nodeType": "YulTypedName", + "src": "10158:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "10168:7:37", + "nodeType": "YulTypedName", + "src": "10168:7:37", + "type": "" + } + ], + "src": "10133:86:37" + }, + { + "body": { + "nativeSrc": "10292:89:37", + "nodeType": "YulBlock", + "src": "10292:89:37", + "statements": [ + { + "nativeSrc": "10302:73:37", + "nodeType": "YulAssignment", + "src": "10302:73:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10367:5:37", + "nodeType": "YulIdentifier", + "src": "10367:5:37" + } + ], + "functionName": { + "name": "cleanup_t_rational_48_by_1", + "nativeSrc": "10340:26:37", + "nodeType": "YulIdentifier", + "src": "10340:26:37" + }, + "nativeSrc": "10340:33:37", + "nodeType": "YulFunctionCall", + "src": "10340:33:37" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "10331:8:37", + "nodeType": "YulIdentifier", + "src": "10331:8:37" + }, + "nativeSrc": "10331:43:37", + "nodeType": "YulFunctionCall", + "src": "10331:43:37" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nativeSrc": "10315:15:37", + "nodeType": "YulIdentifier", + "src": "10315:15:37" + }, + "nativeSrc": "10315:60:37", + "nodeType": "YulFunctionCall", + "src": "10315:60:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "10302:9:37", + "nodeType": "YulIdentifier", + "src": "10302:9:37" + } + ] + } + ] + }, + "name": "convert_t_rational_48_by_1_to_t_uint8", + "nativeSrc": "10225:156:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "10272:5:37", + "nodeType": "YulTypedName", + "src": "10272:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "10282:9:37", + "nodeType": "YulTypedName", + "src": "10282:9:37", + "type": "" + } + ], + "src": "10225:156:37" + }, + { + "body": { + "nativeSrc": "10459:73:37", + "nodeType": "YulBlock", + "src": "10459:73:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10476:3:37", + "nodeType": "YulIdentifier", + "src": "10476:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10519:5:37", + "nodeType": "YulIdentifier", + "src": "10519:5:37" + } + ], + "functionName": { + "name": "convert_t_rational_48_by_1_to_t_uint8", + "nativeSrc": "10481:37:37", + "nodeType": "YulIdentifier", + "src": "10481:37:37" + }, + "nativeSrc": "10481:44:37", + "nodeType": "YulFunctionCall", + "src": "10481:44:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10469:6:37", + "nodeType": "YulIdentifier", + "src": "10469:6:37" + }, + "nativeSrc": "10469:57:37", + "nodeType": "YulFunctionCall", + "src": "10469:57:37" + }, + "nativeSrc": "10469:57:37", + "nodeType": "YulExpressionStatement", + "src": "10469:57:37" + } + ] + }, + "name": "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack", + "nativeSrc": "10387:145:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "10447:5:37", + "nodeType": "YulTypedName", + "src": "10447:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "10454:3:37", + "nodeType": "YulTypedName", + "src": "10454:3:37", + "type": "" + } + ], + "src": "10387:145:37" + }, + { + "body": { + "nativeSrc": "10583:32:37", + "nodeType": "YulBlock", + "src": "10583:32:37", + "statements": [ + { + "nativeSrc": "10593:16:37", + "nodeType": "YulAssignment", + "src": "10593:16:37", + "value": { + "name": "value", + "nativeSrc": "10604:5:37", + "nodeType": "YulIdentifier", + "src": "10604:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "10593:7:37", + "nodeType": "YulIdentifier", + "src": "10593:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "10538:77:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "10565:5:37", + "nodeType": "YulTypedName", + "src": "10565:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "10575:7:37", + "nodeType": "YulTypedName", + "src": "10575:7:37", + "type": "" + } + ], + "src": "10538:77:37" + }, + { + "body": { + "nativeSrc": "10686:53:37", + "nodeType": "YulBlock", + "src": "10686:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10703:3:37", + "nodeType": "YulIdentifier", + "src": "10703:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10726:5:37", + "nodeType": "YulIdentifier", + "src": "10726:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "10708:17:37", + "nodeType": "YulIdentifier", + "src": "10708:17:37" + }, + "nativeSrc": "10708:24:37", + "nodeType": "YulFunctionCall", + "src": "10708:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10696:6:37", + "nodeType": "YulIdentifier", + "src": "10696:6:37" + }, + "nativeSrc": "10696:37:37", + "nodeType": "YulFunctionCall", + "src": "10696:37:37" + }, + "nativeSrc": "10696:37:37", + "nodeType": "YulExpressionStatement", + "src": "10696:37:37" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "10621:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "10674:5:37", + "nodeType": "YulTypedName", + "src": "10674:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "10681:3:37", + "nodeType": "YulTypedName", + "src": "10681:3:37", + "type": "" + } + ], + "src": "10621:118:37" + }, + { + "body": { + "nativeSrc": "10878:213:37", + "nodeType": "YulBlock", + "src": "10878:213:37", + "statements": [ + { + "nativeSrc": "10888:26:37", + "nodeType": "YulAssignment", + "src": "10888:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10900:9:37", + "nodeType": "YulIdentifier", + "src": "10900:9:37" + }, + { + "kind": "number", + "nativeSrc": "10911:2:37", + "nodeType": "YulLiteral", + "src": "10911:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10896:3:37", + "nodeType": "YulIdentifier", + "src": "10896:3:37" + }, + "nativeSrc": "10896:18:37", + "nodeType": "YulFunctionCall", + "src": "10896:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10888:4:37", + "nodeType": "YulIdentifier", + "src": "10888:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "10975:6:37", + "nodeType": "YulIdentifier", + "src": "10975:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10988:9:37", + "nodeType": "YulIdentifier", + "src": "10988:9:37" + }, + { + "kind": "number", + "nativeSrc": "10999:1:37", + "nodeType": "YulLiteral", + "src": "10999:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10984:3:37", + "nodeType": "YulIdentifier", + "src": "10984:3:37" + }, + "nativeSrc": "10984:17:37", + "nodeType": "YulFunctionCall", + "src": "10984:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack", + "nativeSrc": "10924:50:37", + "nodeType": "YulIdentifier", + "src": "10924:50:37" + }, + "nativeSrc": "10924:78:37", + "nodeType": "YulFunctionCall", + "src": "10924:78:37" + }, + "nativeSrc": "10924:78:37", + "nodeType": "YulExpressionStatement", + "src": "10924:78:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "11056:6:37", + "nodeType": "YulIdentifier", + "src": "11056:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11069:9:37", + "nodeType": "YulIdentifier", + "src": "11069:9:37" + }, + { + "kind": "number", + "nativeSrc": "11080:2:37", + "nodeType": "YulLiteral", + "src": "11080:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11065:3:37", + "nodeType": "YulIdentifier", + "src": "11065:3:37" + }, + "nativeSrc": "11065:18:37", + "nodeType": "YulFunctionCall", + "src": "11065:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "11012:43:37", + "nodeType": "YulIdentifier", + "src": "11012:43:37" + }, + "nativeSrc": "11012:72:37", + "nodeType": "YulFunctionCall", + "src": "11012:72:37" + }, + "nativeSrc": "11012:72:37", + "nodeType": "YulExpressionStatement", + "src": "11012:72:37" + } + ] + }, + "name": "abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed", + "nativeSrc": "10745:346:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10842:9:37", + "nodeType": "YulTypedName", + "src": "10842:9:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10854:6:37", + "nodeType": "YulTypedName", + "src": "10854:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "10862:6:37", + "nodeType": "YulTypedName", + "src": "10862:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10873:4:37", + "nodeType": "YulTypedName", + "src": "10873:4:37", + "type": "" + } + ], + "src": "10745:346:37" + }, + { + "body": { + "nativeSrc": "11141:160:37", + "nodeType": "YulBlock", + "src": "11141:160:37", + "statements": [ + { + "nativeSrc": "11151:24:37", + "nodeType": "YulAssignment", + "src": "11151:24:37", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "11173:1:37", + "nodeType": "YulIdentifier", + "src": "11173:1:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "11156:16:37", + "nodeType": "YulIdentifier", + "src": "11156:16:37" + }, + "nativeSrc": "11156:19:37", + "nodeType": "YulFunctionCall", + "src": "11156:19:37" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "11151:1:37", + "nodeType": "YulIdentifier", + "src": "11151:1:37" + } + ] + }, + { + "nativeSrc": "11184:24:37", + "nodeType": "YulAssignment", + "src": "11184:24:37", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "11206:1:37", + "nodeType": "YulIdentifier", + "src": "11206:1:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "11189:16:37", + "nodeType": "YulIdentifier", + "src": "11189:16:37" + }, + "nativeSrc": "11189:19:37", + "nodeType": "YulFunctionCall", + "src": "11189:19:37" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "11184:1:37", + "nodeType": "YulIdentifier", + "src": "11184:1:37" + } + ] + }, + { + "nativeSrc": "11217:17:37", + "nodeType": "YulAssignment", + "src": "11217:17:37", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "11229:1:37", + "nodeType": "YulIdentifier", + "src": "11229:1:37" + }, + { + "name": "y", + "nativeSrc": "11232:1:37", + "nodeType": "YulIdentifier", + "src": "11232:1:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11225:3:37", + "nodeType": "YulIdentifier", + "src": "11225:3:37" + }, + "nativeSrc": "11225:9:37", + "nodeType": "YulFunctionCall", + "src": "11225:9:37" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "11217:4:37", + "nodeType": "YulIdentifier", + "src": "11217:4:37" + } + ] + }, + { + "body": { + "nativeSrc": "11272:22:37", + "nodeType": "YulBlock", + "src": "11272:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "11274:16:37", + "nodeType": "YulIdentifier", + "src": "11274:16:37" + }, + "nativeSrc": "11274:18:37", + "nodeType": "YulFunctionCall", + "src": "11274:18:37" + }, + "nativeSrc": "11274:18:37", + "nodeType": "YulExpressionStatement", + "src": "11274:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "11250:4:37", + "nodeType": "YulIdentifier", + "src": "11250:4:37" + }, + { + "kind": "number", + "nativeSrc": "11256:14:37", + "nodeType": "YulLiteral", + "src": "11256:14:37", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "11247:2:37", + "nodeType": "YulIdentifier", + "src": "11247:2:37" + }, + "nativeSrc": "11247:24:37", + "nodeType": "YulFunctionCall", + "src": "11247:24:37" + }, + "nativeSrc": "11244:50:37", + "nodeType": "YulIf", + "src": "11244:50:37" + } + ] + }, + "name": "checked_sub_t_uint48", + "nativeSrc": "11097:204:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "11127:1:37", + "nodeType": "YulTypedName", + "src": "11127:1:37", + "type": "" + }, + { + "name": "y", + "nativeSrc": "11130:1:37", + "nodeType": "YulTypedName", + "src": "11130:1:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "11136:4:37", + "nodeType": "YulTypedName", + "src": "11136:4:37", + "type": "" + } + ], + "src": "11097:204:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint48(value) -> cleaned {\n cleaned := and(value, 0xffffffffffff)\n }\n\n function abi_encode_t_uint48_to_t_uint48_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint48(value))\n }\n\n function abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint48_to_t_uint48_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_uint48(value) {\n if iszero(eq(value, cleanup_t_uint48(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint48(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint48(value)\n }\n\n function abi_decode_tuple_t_uint48(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint48(add(headStart, offset), dataEnd)\n }\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_ISciRegistry_$7088_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7088_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint48_to_t_uint48_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint48_to_t_uint48_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint48_to_t_uint48_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_contract$_IVerifier_$7453(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IVerifier_$7453(value) {\n if iszero(eq(value, cleanup_t_contract$_IVerifier_$7453(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IVerifier_$7453(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IVerifier_$7453(value)\n }\n\n function abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$7453(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_contract$_IVerifier_$7453(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n function convert_t_contract$_IVerifier_$7453_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IVerifier_$7453_to_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$7453__to_t_address_t_bytes32_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint48(x, y) -> sum {\n x := cleanup_t_uint48(x)\n y := cleanup_t_uint48(y)\n sum := add(x, y)\n\n if gt(sum, 0xffffffffffff) { panic_error_0x11() }\n\n }\n\n function cleanup_t_rational_48_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function convert_t_rational_48_by_1_to_t_uint8(value) -> converted {\n converted := cleanup_t_uint8(identity(cleanup_t_rational_48_by_1(value)))\n }\n\n function abi_encode_t_rational_48_by_1_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_rational_48_by_1_to_t_uint8(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_rational_48_by_1_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function checked_sub_t_uint48(x, y) -> diff {\n x := cleanup_t_uint48(x)\n y := cleanup_t_uint48(y)\n diff := sub(x, y)\n\n if gt(diff, 0xffffffffffff) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "6713": [ + { + "length": 32, + "start": 1598 + }, + { + "length": 32, + "start": 1942 + }, + { + "length": 32, + "start": 2555 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c9190611497565b6103c9565b60405161016e91906114df565b60405180910390f35b61017f610443565b60405161018c919061151b565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b4919061156c565b610466565b6040516101c691906115a8565b60405180910390f35b6101d7610485565b6040516101e491906115a8565b60405180910390f35b61020760048036038101906102029190611621565b6104a9565b005b610223600480360381019061021e9190611621565b6104f3565b005b61023f600480360381019061023a9190611661565b610608565b005b61025b600480360381019061025691906116ba565b610622565b005b61026561063c565b6040516102729190611746565b60405180910390f35b610283610660565b6040516102909190611770565b60405180910390f35b6102a161068a565b6040516102ae9190611770565b60405180910390f35b6102d160048036038101906102cc9190611621565b610699565b6040516102de91906114df565b60405180910390f35b6102ef610703565b6040516102fd92919061178b565b60405180910390f35b61030e610763565b60405161031b91906115a8565b60405180910390f35b61033e600480360381019061033991906117b4565b61076a565b005b610348610826565b604051610355919061151b565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e9291906117f4565b60405180910390f35b6103a1600480360381019061039c9190611621565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061185b565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061151b565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118ae565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611770565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a56939291906118f8565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c919061195e565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061151b565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c88919061195e565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc592919061178b565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061151b565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118ae565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b9291906119f9565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a22565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60008183106114305781611432565b825b905092915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114748161143f565b811461147f57600080fd5b50565b6000813590506114918161146b565b92915050565b6000602082840312156114ad576114ac61143a565b5b60006114bb84828501611482565b91505092915050565b60008115159050919050565b6114d9816114c4565b82525050565b60006020820190506114f460008301846114d0565b92915050565b600065ffffffffffff82169050919050565b611515816114fa565b82525050565b6000602082019050611530600083018461150c565b92915050565b6000819050919050565b61154981611536565b811461155457600080fd5b50565b60008135905061156681611540565b92915050565b6000602082840312156115825761158161143a565b5b600061159084828501611557565b91505092915050565b6115a281611536565b82525050565b60006020820190506115bd6000830184611599565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115ee826115c3565b9050919050565b6115fe816115e3565b811461160957600080fd5b50565b60008135905061161b816115f5565b92915050565b600080604083850312156116385761163761143a565b5b600061164685828601611557565b92505060206116578582860161160c565b9150509250929050565b6000602082840312156116775761167661143a565b5b60006116858482850161160c565b91505092915050565b611697816114fa565b81146116a257600080fd5b50565b6000813590506116b48161168e565b92915050565b6000602082840312156116d0576116cf61143a565b5b60006116de848285016116a5565b91505092915050565b6000819050919050565b600061170c611707611702846115c3565b6116e7565b6115c3565b9050919050565b600061171e826116f1565b9050919050565b600061173082611713565b9050919050565b61174081611725565b82525050565b600060208201905061175b6000830184611737565b92915050565b61176a816115e3565b82525050565b60006020820190506117856000830184611761565b92915050565b60006040820190506117a0600083018561150c565b6117ad602083018461150c565b9392505050565b600080604083850312156117cb576117ca61143a565b5b60006117d98582860161160c565b92505060206117ea85828601611557565b9150509250929050565b60006040820190506118096000830185611761565b611816602083018461150c565b9392505050565b6000611828826115e3565b9050919050565b6118388161181d565b811461184357600080fd5b50565b6000813590506118558161182f565b92915050565b6000806000606084860312156118745761187361143a565b5b60006118828682870161160c565b935050602061189386828701611557565b92505060406118a486828701611846565b9150509250925092565b60006040820190506118c36000830185611761565b6118d06020830184611599565b9392505050565b60006118e282611713565b9050919050565b6118f2816118d7565b82525050565b600060608201905061190d6000830186611761565b61191a6020830185611599565b61192760408301846118e9565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611969826114fa565b9150611974836114fa565b9250828201905065ffffffffffff8111156119925761199161192f565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ca6119c56119c084611998565b6116e7565b6119a2565b9050919050565b6119da816119af565b82525050565b6000819050919050565b6119f3816119e0565b82525050565b6000604082019050611a0e60008301856119d1565b611a1b60208301846119ea565b9392505050565b6000611a2d826114fa565b9150611a38836114fa565b9250828203905065ffffffffffff811115611a5657611a5561192f565b5b9291505056fea2646970667358221220784af17183a32592891679a3d8a65de9c8f4edc26375d777c51a2a5c8404168464736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xCC8463C8 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xCC8463C8 EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0xCEFC1429 EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0xCF6EEFB7 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xD602B9FD EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xDD738E6C EQ PUSH2 0x3AD JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0xA1EDA53C EQ PUSH2 0x2E7 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0x324 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x634E93DA EQ PUSH2 0x225 JUMPI DUP1 PUSH4 0x649A5EC7 EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0x84EF8FFC EQ PUSH2 0x27B JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x22D63FB EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0xAA6220B EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0x2A3FEA62 EQ PUSH2 0x1CF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x161 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x1497 JUMP JUMPDEST PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x14DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0x151B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19D PUSH2 0x44E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x156C JUMP JUMPDEST PUSH2 0x466 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x15A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D7 PUSH2 0x485 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E4 SWAP2 SWAP1 PUSH2 0x15A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x207 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x202 SWAP2 SWAP1 PUSH2 0x1621 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x223 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21E SWAP2 SWAP1 PUSH2 0x1621 JUMP JUMPDEST PUSH2 0x4F3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23A SWAP2 SWAP1 PUSH2 0x1661 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x256 SWAP2 SWAP1 PUSH2 0x16BA JUMP JUMPDEST PUSH2 0x622 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x265 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x272 SWAP2 SWAP1 PUSH2 0x1746 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x283 PUSH2 0x660 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x290 SWAP2 SWAP1 PUSH2 0x1770 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A1 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AE SWAP2 SWAP1 PUSH2 0x1770 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2D1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CC SWAP2 SWAP1 PUSH2 0x1621 JUMP JUMPDEST PUSH2 0x699 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DE SWAP2 SWAP1 PUSH2 0x14DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EF PUSH2 0x703 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FD SWAP3 SWAP2 SWAP1 PUSH2 0x178B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30E PUSH2 0x763 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x15A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0x17B4 JUMP JUMPDEST PUSH2 0x76A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x348 PUSH2 0x826 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x151B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x366 PUSH2 0x894 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x370 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP3 SWAP2 SWAP1 PUSH2 0x17F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3A1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39C SWAP2 SWAP1 PUSH2 0x1621 JUMP JUMPDEST PUSH2 0x96D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3AB PUSH2 0x9B7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x185B JUMP JUMPDEST PUSH2 0x9CF JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH32 0x3149878600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x43C JUMPI POP PUSH2 0x43B DUP3 PUSH2 0xA8E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x69780 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x45B DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x463 PUSH2 0xB1C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x4E5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4EF DUP3 DUP3 PUSH2 0xB29 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 EQ DUP1 ISZERO PUSH2 0x537 JUMPI POP PUSH2 0x508 PUSH2 0x660 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x5FA JUMPI PUSH1 0x0 DUP1 PUSH2 0x547 PUSH2 0x92A JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x58D JUMPI POP PUSH2 0x58B DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x59E JUMPI POP PUSH2 0x59C DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x5E0 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5D7 SWAP2 SWAP1 PUSH2 0x151B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMPDEST PUSH2 0x604 DUP3 DUP3 PUSH2 0xB74 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x615 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x61E DUP3 PUSH2 0xBEF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x62F DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x638 DUP3 PUSH2 0xC6A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x694 PUSH2 0x660 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x726 DUP2 PUSH2 0xB4B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x738 JUMPI POP PUSH2 0x736 DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x744 JUMPI PUSH1 0x0 DUP1 PUSH2 0x75B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 PUSH2 0x794 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA8C00861 DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7EF SWAP3 SWAP2 SWAP1 PUSH2 0x18AE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x809 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x81D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x849 DUP2 PUSH2 0xB4B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x85A JUMPI POP PUSH2 0x859 DUP2 PUSH2 0xB60 JUMP JUMPDEST JUMPDEST PUSH2 0x878 JUMPI PUSH1 0x1 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x88E JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89E PUSH2 0x92A JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8C0 PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x91F JUMPI PUSH2 0x8E3 PUSH2 0xCD1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x916 SWAP2 SWAP1 PUSH2 0x1770 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x927 PUSH2 0xCD9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x9A9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9B3 DUP3 DUP3 PUSH2 0xDA8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x9C4 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x9CC PUSH2 0xDCA JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 PUSH2 0x9F9 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD738E6C DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA56 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x18F8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA84 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB01 JUMPI POP PUSH2 0xB00 DUP3 PUSH2 0xDD7 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB19 DUP2 PUSH2 0xB14 PUSH2 0xCD1 JUMP JUMPDEST PUSH2 0xE41 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xB27 PUSH1 0x0 DUP1 PUSH2 0xE92 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xB32 DUP3 PUSH2 0x466 JUMP JUMPDEST PUSH2 0xB3B DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0xB45 DUP4 DUP4 PUSH2 0xF82 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH6 0xFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP DUP3 PUSH6 0xFFFFFFFFFFFF AND LT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB7C PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBE0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBEA DUP3 DUP3 PUSH2 0x104F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF9 PUSH2 0x826 JUMP JUMPDEST PUSH2 0xC02 TIMESTAMP PUSH2 0x10D2 JUMP JUMPDEST PUSH2 0xC0C SWAP2 SWAP1 PUSH2 0x195E JUMP JUMPDEST SWAP1 POP PUSH2 0xC18 DUP3 DUP3 PUSH2 0x112C JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3377DC44241E779DD06AFAB5B788A35CA5F3B778836E2990BDB26A2A4B2E5ED6 DUP3 PUSH1 0x40 MLOAD PUSH2 0xC5E SWAP2 SWAP1 PUSH2 0x151B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC75 DUP3 PUSH2 0x11DF JUMP JUMPDEST PUSH2 0xC7E TIMESTAMP PUSH2 0x10D2 JUMP JUMPDEST PUSH2 0xC88 SWAP2 SWAP1 PUSH2 0x195E JUMP JUMPDEST SWAP1 POP PUSH2 0xC94 DUP3 DUP3 PUSH2 0xE92 JUMP JUMPDEST PUSH32 0xF1038C18CF84A56E432FDBFAF746924B7EA511DFE03A6506A0CEBA4888788D9B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xCC5 SWAP3 SWAP2 SWAP1 PUSH2 0x178B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xCE4 PUSH2 0x92A JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xCF1 DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO DUP1 PUSH2 0xD03 JUMPI POP PUSH2 0xD01 DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xD45 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD3C SWAP2 SWAP1 PUSH2 0x151B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD59 PUSH1 0x0 DUP1 SHL PUSH2 0xD54 PUSH2 0x660 JUMP JUMPDEST PUSH2 0x104F JUMP JUMPDEST POP PUSH2 0xD67 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0xF82 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xDB1 DUP3 PUSH2 0x466 JUMP JUMPDEST PUSH2 0xDBA DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0xDC4 DUP4 DUP4 PUSH2 0x104F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xDD5 PUSH1 0x0 DUP1 PUSH2 0x112C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE4B DUP3 DUP3 PUSH2 0x699 JUMP JUMPDEST PUSH2 0xE8E JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE85 SWAP3 SWAP2 SWAP1 PUSH2 0x18AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xEB4 DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO PUSH2 0xF33 JUMPI PUSH2 0xEC2 DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO PUSH2 0xF05 JUMPI PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xF32 JUMP JUMPDEST PUSH32 0x2B1FA2EDAFE6F7B9E97C1A9E0C3660E645BEB2DCAA2D45BDBF9BEAF5472E1EC5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0x103D JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xFAE PUSH2 0x660 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFFB JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x1047 DUP4 DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 EQ DUP1 ISZERO PUSH2 0x1095 JUMPI POP PUSH2 0x1066 PUSH2 0x660 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE JUMPDEST PUSH2 0x10CA DUP4 DUP4 PUSH2 0x132F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP1 AND DUP3 GT ISZERO PUSH2 0x1124 JUMPI PUSH1 0x30 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DFCC65000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111B SWAP3 SWAP2 SWAP1 PUSH2 0x19F9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1136 PUSH2 0x92A JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x11A8 DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO PUSH2 0x11DA JUMPI PUSH32 0x8886EBFC4259ABDBC16601DD8FB5678E54878F47B3C34836CFC51154A9605109 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11EA PUSH2 0x826 JUMP JUMPDEST SWAP1 POP DUP1 PUSH6 0xFFFFFFFFFFFF AND DUP4 PUSH6 0xFFFFFFFFFFFF AND GT PUSH2 0x1214 JUMPI DUP3 DUP2 PUSH2 0x120F SWAP2 SWAP1 PUSH2 0x1A22 JUMP JUMPDEST PUSH2 0x1236 JUMP JUMPDEST PUSH2 0x1235 DUP4 PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1228 PUSH2 0x443 JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1421 JUMP JUMPDEST JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x124A DUP4 DUP4 PUSH2 0x699 JUMP JUMPDEST PUSH2 0x1324 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x12C1 PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x133B DUP4 DUP4 PUSH2 0x699 JUMP JUMPDEST ISZERO PUSH2 0x1416 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x13B3 PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x141B JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1430 JUMPI DUP2 PUSH2 0x1432 JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1474 DUP2 PUSH2 0x143F JUMP JUMPDEST DUP2 EQ PUSH2 0x147F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1491 DUP2 PUSH2 0x146B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14AD JUMPI PUSH2 0x14AC PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14BB DUP5 DUP3 DUP6 ADD PUSH2 0x1482 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14D9 DUP2 PUSH2 0x14C4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14F4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x14D0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1515 DUP2 PUSH2 0x14FA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1530 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x150C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1549 DUP2 PUSH2 0x1536 JUMP JUMPDEST DUP2 EQ PUSH2 0x1554 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1566 DUP2 PUSH2 0x1540 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1582 JUMPI PUSH2 0x1581 PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1590 DUP5 DUP3 DUP6 ADD PUSH2 0x1557 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15A2 DUP2 PUSH2 0x1536 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15BD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1599 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15EE DUP3 PUSH2 0x15C3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15FE DUP2 PUSH2 0x15E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x1609 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x161B DUP2 PUSH2 0x15F5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1638 JUMPI PUSH2 0x1637 PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1646 DUP6 DUP3 DUP7 ADD PUSH2 0x1557 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1657 DUP6 DUP3 DUP7 ADD PUSH2 0x160C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1677 JUMPI PUSH2 0x1676 PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1685 DUP5 DUP3 DUP6 ADD PUSH2 0x160C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1697 DUP2 PUSH2 0x14FA JUMP JUMPDEST DUP2 EQ PUSH2 0x16A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16B4 DUP2 PUSH2 0x168E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16D0 JUMPI PUSH2 0x16CF PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x16DE DUP5 DUP3 DUP6 ADD PUSH2 0x16A5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x170C PUSH2 0x1707 PUSH2 0x1702 DUP5 PUSH2 0x15C3 JUMP JUMPDEST PUSH2 0x16E7 JUMP JUMPDEST PUSH2 0x15C3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171E DUP3 PUSH2 0x16F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1730 DUP3 PUSH2 0x1713 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1740 DUP2 PUSH2 0x1725 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x175B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1737 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x176A DUP2 PUSH2 0x15E3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1785 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1761 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x17A0 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x150C JUMP JUMPDEST PUSH2 0x17AD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x150C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17CB JUMPI PUSH2 0x17CA PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17D9 DUP6 DUP3 DUP7 ADD PUSH2 0x160C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x17EA DUP6 DUP3 DUP7 ADD PUSH2 0x1557 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1809 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1761 JUMP JUMPDEST PUSH2 0x1816 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x150C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1828 DUP3 PUSH2 0x15E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1838 DUP2 PUSH2 0x181D JUMP JUMPDEST DUP2 EQ PUSH2 0x1843 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1855 DUP2 PUSH2 0x182F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1874 JUMPI PUSH2 0x1873 PUSH2 0x143A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1882 DUP7 DUP3 DUP8 ADD PUSH2 0x160C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1893 DUP7 DUP3 DUP8 ADD PUSH2 0x1557 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x18A4 DUP7 DUP3 DUP8 ADD PUSH2 0x1846 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x18C3 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1761 JUMP JUMPDEST PUSH2 0x18D0 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1599 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18E2 DUP3 PUSH2 0x1713 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18F2 DUP2 PUSH2 0x18D7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x190D PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1761 JUMP JUMPDEST PUSH2 0x191A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1599 JUMP JUMPDEST PUSH2 0x1927 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x18E9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1969 DUP3 PUSH2 0x14FA JUMP JUMPDEST SWAP2 POP PUSH2 0x1974 DUP4 PUSH2 0x14FA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1992 JUMPI PUSH2 0x1991 PUSH2 0x192F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19CA PUSH2 0x19C5 PUSH2 0x19C0 DUP5 PUSH2 0x1998 JUMP JUMPDEST PUSH2 0x16E7 JUMP JUMPDEST PUSH2 0x19A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19DA DUP2 PUSH2 0x19AF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19F3 DUP2 PUSH2 0x19E0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A0E PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x19D1 JUMP JUMPDEST PUSH2 0x1A1B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x19EA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A2D DUP3 PUSH2 0x14FA JUMP JUMPDEST SWAP2 POP PUSH2 0x1A38 DUP4 PUSH2 0x14FA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A56 JUMPI PUSH2 0x1A55 PUSH2 0x192F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH25 0x4AF17183A32592891679A3D8A65DE9C8F4EDC26375D777C51A 0x2A TLOAD DUP5 DIV AND DUP5 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "743:1954:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:219:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7766:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10927:126;;;:::i;:::-;;3810:120:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;849:80:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3198:265:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4515:566;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8068:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10296:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;936:38:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6707:106:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2942:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2854:136:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7432:261:9;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2187:49:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1789:180:31;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7130:229:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9146:344;;;:::i;:::-;;6886:171;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3563:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8706:128;;;:::i;:::-;;2453:242:31;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2667:219:9;2752:4;2790:49;2775:64;;;:11;:64;;;;:104;;;;2843:36;2867:11;2843:23;:36::i;:::-;2775:104;2768:111;;2667:219;;;:::o;7766:108::-;7836:6;7861;7854:13;;7766:108;:::o;10927:126::-;2232:4:6;10988:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;11018:28:9::1;:26;:28::i;:::-;10927:126:::0;:::o;3810:120:6:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;849:80:31:-;896:33;849:80;:::o;3198:265:9:-;2232:4:6;3325:18:9;;3317:4;:26;3313:104;;3366:40;;;;;;;;;;;;;;3313:104;3426:30;3442:4;3448:7;3426:15;:30::i;:::-;3198:265;;:::o;4515:566::-;2232:4:6;4645:18:9;;4637:4;:26;:55;;;;;4678:14;:12;:14::i;:::-;4667:25;;:7;:25;;;4637:55;4633:399;;;4709:23;4734:15;4753:21;:19;:21::i;:::-;4708:66;;;;4819:1;4792:29;;:15;:29;;;;:58;;;;4826:24;4841:8;4826:14;:24::i;:::-;4825:25;4792:58;:91;;;;4855:28;4874:8;4855:18;:28::i;:::-;4854:29;4792:91;4788:185;;;4949:8;4910:48;;;;;;;;;;;:::i;:::-;;;;;;;;4788:185;4993:28;;4986:35;;;;;;;;;;;4694:338;;4633:399;5041:33;5060:4;5066:7;5041:18;:33::i;:::-;4515:566;;:::o;8068:150::-;2232:4:6;8145:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;8175:36:9::1;8202:8;8175:26;:36::i;:::-;8068:150:::0;;:::o;10296:145::-;2232:4:6;10370:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;10400:34:9::1;10425:8;10400:24;:34::i;:::-;10296:145:::0;;:::o;936:38:31:-;;;:::o;6707:106:9:-;6760:7;6786:20;;;;;;;;;;;6779:27;;6707:106;:::o;2942:93::-;2988:7;3014:14;:12;:14::i;:::-;3007:21;;2942:93;:::o;2854:136:6:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;7432:261:9:-;7497:15;7514;7552:21;;;;;;;;;;;7541:32;;7591:24;7606:8;7591:14;:24::i;:::-;:57;;;;;7620:28;7639:8;7620:18;:28::i;:::-;7619:29;7591:57;7590:96;;7681:1;7684;7590:96;;;7653:13;;;;;;;;;;;7668:8;7590:96;7583:103;;;;7432:261;;:::o;2187:49:6:-;2232:4;2187:49;;;:::o;1789:180:31:-;896:33;2464:16:6;2475:4;2464:10;:16::i;:::-;1920:8:31::1;:23;;;1944:5;1951:10;1920:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1789:180:::0;;;:::o;7130:229:9:-;7188:6;7206:15;7224:21;;;;;;;;;;;7206:39;;7263:24;7278:8;7263:14;:24::i;:::-;:56;;;;;7291:28;7310:8;7291:18;:28::i;:::-;7263:56;7262:90;;7339:13;;;;;;;;;;;7262:90;;;7323:13;;;;;;;;;;;7262:90;7255:97;;;7130:229;:::o;9146:344::-;9210:23;9239:21;:19;:21::i;:::-;9209:51;;;9290:15;9274:31;;:12;:10;:12::i;:::-;:31;;;9270:175;;9421:12;:10;:12::i;:::-;9388:46;;;;;;;;;;;:::i;:::-;;;;;;;;9270:175;9454:29;:27;:29::i;:::-;9199:291;9146:344::o;6886:171::-;6946:16;6964:15;6999:20;;;;;;;;;;;7021:28;;;;;;;;;;;6991:59;;;;6886:171;;:::o;3563:267::-;2232:4:6;3691:18:9;;3683:4;:26;3679:104;;3732:40;;;;;;;;;;;;;;3679:104;3792:31;3809:4;3815:7;3792:16;:31::i;:::-;3563:267;;:::o;8706:128::-;2232:4:6;8768:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;8798:29:9::1;:27;:29::i;:::-;8706:128:::0;:::o;2453:242:31:-;896:33;2464:16:6;2475:4;2464:10;:16::i;:::-;2624:8:31::1;:35;;;2660:5;2667:10;2679:8;2624:64;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2453:242:::0;;;;:::o;2565:202:6:-;2650:4;2688:32;2673:47;;;:11;:47;;;;:87;;;;2724:36;2748:11;2724:23;:36::i;:::-;2673:87;2666:94;;2565:202;;;:::o;3199:103::-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;11180:94:9:-;11245:22;11262:1;11265;11245:16;:22::i;:::-;11180:94::o;4226:136:6:-;4300:18;4313:4;4300:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;14471:106:9:-;14534:4;14569:1;14557:8;:13;;;;14550:20;;14471:106;;;:::o;14684:123::-;14751:4;14785:15;14774:8;:26;;;14767:33;;14684:123;;;:::o;5328:245:6:-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;8345:288:9:-;8426:18;8484:19;:17;:19::i;:::-;8447:34;8465:15;8447:17;:34::i;:::-;:56;;;;:::i;:::-;8426:77;;8513:46;8537:8;8547:11;8513:23;:46::i;:::-;8604:8;8574:52;;;8614:11;8574:52;;;;;;:::i;:::-;;;;;;;;8416:217;8345:288;:::o;10566:::-;10644:18;10702:26;10719:8;10702:16;:26::i;:::-;10665:34;10683:15;10665:17;:34::i;:::-;:63;;;;:::i;:::-;10644:84;;10738:39;10755:8;10765:11;10738:16;:39::i;:::-;10792:55;10825:8;10835:11;10792:55;;;;;;;:::i;:::-;;;;;;;;10634:220;10566:288;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;9618:474:9:-;9685:16;9703:15;9722:21;:19;:21::i;:::-;9684:59;;;;9758:24;9773:8;9758:14;:24::i;:::-;9757:25;:58;;;;9787:28;9806:8;9787:18;:28::i;:::-;9786:29;9757:58;9753:144;;;9877:8;9838:48;;;;;;;;;;;:::i;:::-;;;;;;;;9753:144;9906:47;2232:4:6;9918:18:9;;9938:14;:12;:14::i;:::-;9906:11;:47::i;:::-;;9963:40;2232:4:6;9974:18:9;;9994:8;9963:10;:40::i;:::-;;10020:20;;10013:27;;;;;;;;;;;10057:28;;10050:35;;;;;;;;;;;9674:418;;9618:474::o;4642:138:6:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;8962:111:9:-;9028:38;9060:1;9064;9028:23;:38::i;:::-;8962:111::o;762:146:23:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;3432:197:6:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;13741:585:9:-;13822:18;13843:21;;;;;;;;;;;13822:42;;13879:27;13894:11;13879:14;:27::i;:::-;13875:365;;;13926:31;13945:11;13926:18;:31::i;:::-;13922:308;;;14040:13;;;;;;;;;;;14024;;:29;;;;;;;;;;;;;;;;;;13922:308;;;14182:33;;;;;;;;;;13922:308;13875:365;14266:8;14250:13;;:24;;;;;;;;;;;;;;;;;;14308:11;14284:21;;:35;;;;;;;;;;;;;;;;;;13812:514;13741:585;;:::o;5509:370::-;5595:4;2232::6;5623:18:9;;5615:4;:26;5611:214;;5687:1;5661:28;;:14;:12;:14::i;:::-;:28;;;5657:114;;5716:40;;;;;;;;;;;;;;5657:114;5807:7;5784:20;;:30;;;;;;;;;;;;;;;;;;5611:214;5841:31;5858:4;5864:7;5841:16;:31::i;:::-;5834:38;;5509:370;;;;:::o;5946:271::-;6033:4;2232::6;6061:18:9;;6053:4;:26;:55;;;;;6094:14;:12;:14::i;:::-;6083:25;;:7;:25;;;6053:55;6049:113;;;6131:20;;6124:27;;;;;;;;;;;6049:113;6178:32;6196:4;6202:7;6178:17;:32::i;:::-;6171:39;;5946:271;;;;:::o;14291:213:26:-;14347:6;14377:16;14369:24;;:5;:24;14365:103;;;14447:2;14451:5;14416:41;;;;;;;;;;;;:::i;:::-;;;;;;;;14365:103;14491:5;14477:20;;14291:213;;;:::o;13062:525:9:-;13154:18;13176:21;:19;:21::i;:::-;13151:46;;;13231:8;13208:20;;:31;;;;;;;;;;;;;;;;;;13280:11;13249:28;;:42;;;;;;;;;;;;;;;;;;13403:27;13418:11;13403:14;:27::i;:::-;13399:182;;;13540:30;;;;;;;;;;13399:182;13141:446;13062:525;;:::o;11621:1249::-;11695:6;11713:19;11735;:17;:19::i;:::-;11713:41;;12684:12;12673:23;;:8;:23;;;:190;;12855:8;12840:12;:23;;;;:::i;:::-;12673:190;;;12722:51;12731:8;12722:51;;12741:31;:29;:31::i;:::-;12722:51;;:8;:51::i;:::-;12673:190;12654:209;;;11621:1249;;;:::o;6179:316:6:-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;6730:317::-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;2557:104:25:-;2615:7;2645:1;2641;:5;:13;;2653:1;2641:13;;;2649:1;2641:13;2634:20;;2557:104;;;;:::o;88:117:37:-;197:1;194;187:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:97::-;1554:7;1594:14;1587:5;1583:26;1572:37;;1518:97;;;:::o;1621:115::-;1706:23;1723:5;1706:23;:::i;:::-;1701:3;1694:36;1621:115;;:::o;1742:218::-;1833:4;1871:2;1860:9;1856:18;1848:26;;1884:69;1950:1;1939:9;1935:17;1926:6;1884:69;:::i;:::-;1742:218;;;;:::o;1966:77::-;2003:7;2032:5;2021:16;;1966:77;;;:::o;2049:122::-;2122:24;2140:5;2122:24;:::i;:::-;2115:5;2112:35;2102:63;;2161:1;2158;2151:12;2102:63;2049:122;:::o;2177:139::-;2223:5;2261:6;2248:20;2239:29;;2277:33;2304:5;2277:33;:::i;:::-;2177:139;;;;:::o;2322:329::-;2381:6;2430:2;2418:9;2409:7;2405:23;2401:32;2398:119;;;2436:79;;:::i;:::-;2398:119;2556:1;2581:53;2626:7;2617:6;2606:9;2602:22;2581:53;:::i;:::-;2571:63;;2527:117;2322:329;;;;:::o;2657:118::-;2744:24;2762:5;2744:24;:::i;:::-;2739:3;2732:37;2657:118;;:::o;2781:222::-;2874:4;2912:2;2901:9;2897:18;2889:26;;2925:71;2993:1;2982:9;2978:17;2969:6;2925:71;:::i;:::-;2781:222;;;;:::o;3009:126::-;3046:7;3086:42;3079:5;3075:54;3064:65;;3009:126;;;:::o;3141:96::-;3178:7;3207:24;3225:5;3207:24;:::i;:::-;3196:35;;3141:96;;;:::o;3243:122::-;3316:24;3334:5;3316:24;:::i;:::-;3309:5;3306:35;3296:63;;3355:1;3352;3345:12;3296:63;3243:122;:::o;3371:139::-;3417:5;3455:6;3442:20;3433:29;;3471:33;3498:5;3471:33;:::i;:::-;3371:139;;;;:::o;3516:474::-;3584:6;3592;3641:2;3629:9;3620:7;3616:23;3612:32;3609:119;;;3647:79;;:::i;:::-;3609:119;3767:1;3792:53;3837:7;3828:6;3817:9;3813:22;3792:53;:::i;:::-;3782:63;;3738:117;3894:2;3920:53;3965:7;3956:6;3945:9;3941:22;3920:53;:::i;:::-;3910:63;;3865:118;3516:474;;;;;:::o;3996:329::-;4055:6;4104:2;4092:9;4083:7;4079:23;4075:32;4072:119;;;4110:79;;:::i;:::-;4072:119;4230:1;4255:53;4300:7;4291:6;4280:9;4276:22;4255:53;:::i;:::-;4245:63;;4201:117;3996:329;;;;:::o;4331:120::-;4403:23;4420:5;4403:23;:::i;:::-;4396:5;4393:34;4383:62;;4441:1;4438;4431:12;4383:62;4331:120;:::o;4457:137::-;4502:5;4540:6;4527:20;4518:29;;4556:32;4582:5;4556:32;:::i;:::-;4457:137;;;;:::o;4600:327::-;4658:6;4707:2;4695:9;4686:7;4682:23;4678:32;4675:119;;;4713:79;;:::i;:::-;4675:119;4833:1;4858:52;4902:7;4893:6;4882:9;4878:22;4858:52;:::i;:::-;4848:62;;4804:116;4600:327;;;;:::o;4933:60::-;4961:3;4982:5;4975:12;;4933:60;;;:::o;4999:142::-;5049:9;5082:53;5100:34;5109:24;5127:5;5109:24;:::i;:::-;5100:34;:::i;:::-;5082:53;:::i;:::-;5069:66;;4999:142;;;:::o;5147:126::-;5197:9;5230:37;5261:5;5230:37;:::i;:::-;5217:50;;5147:126;;;:::o;5279:147::-;5350:9;5383:37;5414:5;5383:37;:::i;:::-;5370:50;;5279:147;;;:::o;5432:173::-;5540:58;5592:5;5540:58;:::i;:::-;5535:3;5528:71;5432:173;;:::o;5611:264::-;5725:4;5763:2;5752:9;5748:18;5740:26;;5776:92;5865:1;5854:9;5850:17;5841:6;5776:92;:::i;:::-;5611:264;;;;:::o;5881:118::-;5968:24;5986:5;5968:24;:::i;:::-;5963:3;5956:37;5881:118;;:::o;6005:222::-;6098:4;6136:2;6125:9;6121:18;6113:26;;6149:71;6217:1;6206:9;6202:17;6193:6;6149:71;:::i;:::-;6005:222;;;;:::o;6233:324::-;6350:4;6388:2;6377:9;6373:18;6365:26;;6401:69;6467:1;6456:9;6452:17;6443:6;6401:69;:::i;:::-;6480:70;6546:2;6535:9;6531:18;6522:6;6480:70;:::i;:::-;6233:324;;;;;:::o;6563:474::-;6631:6;6639;6688:2;6676:9;6667:7;6663:23;6659:32;6656:119;;;6694:79;;:::i;:::-;6656:119;6814:1;6839:53;6884:7;6875:6;6864:9;6860:22;6839:53;:::i;:::-;6829:63;;6785:117;6941:2;6967:53;7012:7;7003:6;6992:9;6988:22;6967:53;:::i;:::-;6957:63;;6912:118;6563:474;;;;;:::o;7043:328::-;7162:4;7200:2;7189:9;7185:18;7177:26;;7213:71;7281:1;7270:9;7266:17;7257:6;7213:71;:::i;:::-;7294:70;7360:2;7349:9;7345:18;7336:6;7294:70;:::i;:::-;7043:328;;;;;:::o;7377:114::-;7432:7;7461:24;7479:5;7461:24;:::i;:::-;7450:35;;7377:114;;;:::o;7497:158::-;7588:42;7624:5;7588:42;:::i;:::-;7581:5;7578:53;7568:81;;7645:1;7642;7635:12;7568:81;7497:158;:::o;7661:175::-;7725:5;7763:6;7750:20;7741:29;;7779:51;7824:5;7779:51;:::i;:::-;7661:175;;;;:::o;7842:655::-;7937:6;7945;7953;8002:2;7990:9;7981:7;7977:23;7973:32;7970:119;;;8008:79;;:::i;:::-;7970:119;8128:1;8153:53;8198:7;8189:6;8178:9;8174:22;8153:53;:::i;:::-;8143:63;;8099:117;8255:2;8281:53;8326:7;8317:6;8306:9;8302:22;8281:53;:::i;:::-;8271:63;;8226:118;8383:2;8409:71;8472:7;8463:6;8452:9;8448:22;8409:71;:::i;:::-;8399:81;;8354:136;7842:655;;;;;:::o;8503:332::-;8624:4;8662:2;8651:9;8647:18;8639:26;;8675:71;8743:1;8732:9;8728:17;8719:6;8675:71;:::i;:::-;8756:72;8824:2;8813:9;8809:18;8800:6;8756:72;:::i;:::-;8503:332;;;;;:::o;8841:144::-;8909:9;8942:37;8973:5;8942:37;:::i;:::-;8929:50;;8841:144;;;:::o;8991:167::-;9096:55;9145:5;9096:55;:::i;:::-;9091:3;9084:68;8991:167;;:::o;9164:478::-;9331:4;9369:2;9358:9;9354:18;9346:26;;9382:71;9450:1;9439:9;9435:17;9426:6;9382:71;:::i;:::-;9463:72;9531:2;9520:9;9516:18;9507:6;9463:72;:::i;:::-;9545:90;9631:2;9620:9;9616:18;9607:6;9545:90;:::i;:::-;9164:478;;;;;;:::o;9648:180::-;9696:77;9693:1;9686:88;9793:4;9790:1;9783:15;9817:4;9814:1;9807:15;9834:201;9873:3;9892:19;9909:1;9892:19;:::i;:::-;9887:24;;9925:19;9942:1;9925:19;:::i;:::-;9920:24;;9967:1;9964;9960:9;9953:16;;9990:14;9985:3;9982:23;9979:49;;;10008:18;;:::i;:::-;9979:49;9834:201;;;;:::o;10041:86::-;10087:7;10116:5;10105:16;;10041:86;;;:::o;10133:::-;10168:7;10208:4;10201:5;10197:16;10186:27;;10133:86;;;:::o;10225:156::-;10282:9;10315:60;10331:43;10340:33;10367:5;10340:33;:::i;:::-;10331:43;:::i;:::-;10315:60;:::i;:::-;10302:73;;10225:156;;;:::o;10387:145::-;10481:44;10519:5;10481:44;:::i;:::-;10476:3;10469:57;10387:145;;:::o;10538:77::-;10575:7;10604:5;10593:16;;10538:77;;;:::o;10621:118::-;10708:24;10726:5;10708:24;:::i;:::-;10703:3;10696:37;10621:118;;:::o;10745:346::-;10873:4;10911:2;10900:9;10896:18;10888:26;;10924:78;10999:1;10988:9;10984:17;10975:6;10924:78;:::i;:::-;11012:72;11080:2;11069:9;11065:18;11056:6;11012:72;:::i;:::-;10745:346;;;;;:::o;11097:204::-;11136:4;11156:19;11173:1;11156:19;:::i;:::-;11151:24;;11189:19;11206:1;11189:19;:::i;:::-;11184:24;;11232:1;11229;11225:9;11217:17;;11256:14;11250:4;11247:24;11244:50;;;11274:18;;:::i;:::-;11244:50;11097:204;;;;:::o" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "REGISTER_DOMAIN_ROLE()": "2a3fea62", + "acceptDefaultAdminTransfer()": "cefc1429", + "beginDefaultAdminTransfer(address)": "634e93da", + "cancelDefaultAdminTransfer()": "d602b9fd", + "changeDefaultAdminDelay(uint48)": "649a5ec7", + "defaultAdmin()": "84ef8ffc", + "defaultAdminDelay()": "cc8463c8", + "defaultAdminDelayIncreaseWait()": "022d63fb", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "owner()": "8da5cb5b", + "pendingDefaultAdmin()": "cf6eefb7", + "pendingDefaultAdminDelay()": "a1eda53c", + "registerDomain(address,bytes32)": "a8c00861", + "registerDomainWithVerifier(address,bytes32,address)": "dd738e6c", + "registry()": "7b103999", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "rollbackDefaultAdminDelay()": "0aa6220b", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sciRegistryAddress\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"initialDelay\",\"type\":\"uint48\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"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\":\"REGISTER_DOMAIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"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\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"registerDomain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"registerDomainWithVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ISciRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":[],\"name\":\"rollbackDefaultAdminDelay\",\"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\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This contract allows addresses with REGISTER_DOMAIN_ROLE role to register a domain in the SCI Registry. This will be use by the SCI team to register domains until the protocol became widly used and we don't need to be registering domains for protocols. The address with REGISTER_DOMAIN_ROLE and DEFAULT_ADMIN_ROLE should be a multisig.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"constructor\":{\"details\":\"Initializes the contract by setting up the SCI Registry reference and defining the admin rules.\",\"params\":{\"_sciRegistryAddress\":\"Address of the custom domain registry contract.\",\"initialDelay\":\"The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\"}},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"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\":\"See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"See {IERC5313-owner}.\"},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"registerDomain(address,bytes32)\":{\"details\":\"Registers a domain in the SCI Registry contract.\",\"params\":{\"domainHash\":\"Namehash of the domain. Requirements: - The caller must have the REGISTER_DOMAIN_ROLE role.\",\"owner\":\"Address expected to be the domain owner.\"}},\"registerDomainWithVerifier(address,bytes32,address)\":{\"details\":\"Registers a domain with a verifier in the SCI Registry contract.\",\"params\":{\"domainHash\":\"Namehash of the domain.\",\"owner\":\"Address expected to be the domain owner.\",\"verifier\":\"Address of the verifier contract. Requirements: - The caller must have the REGISTER_DOMAIN_ROLE role. Note: This contract must only be handle by the SCI Team so we assume it's safe to receive the owner.\"}},\"renounceRole(bytes32,address)\":{\"details\":\"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role.\"},\"revokeRole(bytes32,address)\":{\"details\":\"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"SciRegistrar\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Registrars/SciRegistrar.sol\":\"SciRegistrar\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x969a4661694319a003d037ccbf7c8310f8994d746b763c933d3f76d906e67203\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3992218d90b149834c12bb2bbbb09fcf6cd44605bb37655fc5c42e2f0eaacdea\",\"dweb:/ipfs/QmaqD3yHE46mKZpqFZyMGZHEca5zcp2d53mYVhJz7Jzys2\"]},\"@openzeppelin/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0x22412c268e74cc3cbf550aecc2f7456f6ac40783058e219cfe09f26f4d396621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b841021f25480424d2359de4869e60e77f790f52e8e85f07aa389543024b559\",\"dweb:/ipfs/QmV7U5ehV5xe3QrbE8ErxfWSSzK1T1dGeizXvYPjWpNDGq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"contracts/Registrars/SciRegistrar.sol\":{\"keccak256\":\"0xc68028587337177cd7d4e74579d23f245cc3e3eb314d6086242dcfec37da5b09\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e1f20c143b6c7e1d24ef1587c6dd51fcc3e656561ffc26eb5401fb837abf2f3\",\"dweb:/ipfs/Qmexyu25EonA2WzvGzK6AM2jTgVaQftoHMZ7gtXAey1Nnd\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 1219, + "contract": "contracts/Registrars/SciRegistrar.sol:SciRegistrar", + "label": "_roles", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_bytes32,t_struct(RoleData)1214_storage)" + }, + { + "astId": 1741, + "contract": "contracts/Registrars/SciRegistrar.sol:SciRegistrar", + "label": "_pendingDefaultAdmin", + "offset": 0, + "slot": "1", + "type": "t_address" + }, + { + "astId": 1743, + "contract": "contracts/Registrars/SciRegistrar.sol:SciRegistrar", + "label": "_pendingDefaultAdminSchedule", + "offset": 20, + "slot": "1", + "type": "t_uint48" + }, + { + "astId": 1745, + "contract": "contracts/Registrars/SciRegistrar.sol:SciRegistrar", + "label": "_currentDelay", + "offset": 26, + "slot": "1", + "type": "t_uint48" + }, + { + "astId": 1747, + "contract": "contracts/Registrars/SciRegistrar.sol:SciRegistrar", + "label": "_currentDefaultAdmin", + "offset": 0, + "slot": "2", + "type": "t_address" + }, + { + "astId": 1749, + "contract": "contracts/Registrars/SciRegistrar.sol:SciRegistrar", + "label": "_pendingDelay", + "offset": 20, + "slot": "2", + "type": "t_uint48" + }, + { + "astId": 1751, + "contract": "contracts/Registrars/SciRegistrar.sol:SciRegistrar", + "label": "_pendingDelaySchedule", + "offset": 26, + "slot": "2", + "type": "t_uint48" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_bytes32,t_struct(RoleData)1214_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct AccessControl.RoleData)", + "numberOfBytes": "32", + "value": "t_struct(RoleData)1214_storage" + }, + "t_struct(RoleData)1214_storage": { + "encoding": "inplace", + "label": "struct AccessControl.RoleData", + "members": [ + { + "astId": 1211, + "contract": "contracts/Registrars/SciRegistrar.sol:SciRegistrar", + "label": "hasRole", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_address,t_bool)" + }, + { + "astId": 1213, + "contract": "contracts/Registrars/SciRegistrar.sol:SciRegistrar", + "label": "adminRole", + "offset": 0, + "slot": "1", + "type": "t_bytes32" + } + ], + "numberOfBytes": "64" + }, + "t_uint48": { + "encoding": "inplace", + "label": "uint48", + "numberOfBytes": "6" + } + } + } + } + }, + "contracts/SCI.sol": { + "SCI": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferStarted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "oldRegistryAddress", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newRegistryAddress", + "type": "address" + } + ], + "name": "RegistrySet", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainHashToRecord", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + }, + { + "internalType": "uint256", + "name": "lastOwnerSetTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastVerifierSetTime", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "name": "isVerifiedForDomainHash", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "domainHashes", + "type": "bytes32[]" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "name": "isVerifiedForMultipleDomainHashes", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract ISciRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newRegistry", + "type": "address" + } + ], + "name": "setRegistry", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b5061142d8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220821405c484cd8f087bce149e0b629c117ae2f5f6ce02e02cc9ceab8cc5f1b3a064736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x142D DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x929D1AC1 EQ PUSH2 0x17D JUMPI DUP1 PUSH4 0xA91EE0DC EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E7 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x2019241B EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0xDE JUMPI DUP1 PUSH4 0x5B377FA2 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x137 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xD38 JUMP JUMPDEST PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xDB5 JUMP JUMPDEST PUSH2 0x36C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x114 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10F SWAP2 SWAP1 PUSH2 0xDF5 JUMP JUMPDEST PUSH2 0x50D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x124 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE90 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x135 PUSH2 0x5BC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13F PUSH2 0x5D0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x149 PUSH2 0x65F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x156 SWAP2 SWAP1 PUSH2 0xEF6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x167 PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x174 SWAP2 SWAP1 PUSH2 0xF11 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x197 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x192 SWAP2 SWAP1 PUSH2 0x1085 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A4 SWAP2 SWAP1 PUSH2 0x11B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C2 SWAP2 SWAP1 PUSH2 0x11D4 JUMP JUMPDEST PUSH2 0x778 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1D1 PUSH2 0x844 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0xF11 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x201 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x11D4 JUMP JUMPDEST PUSH2 0x87C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B377FA2 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x25F SWAP2 SWAP1 PUSH2 0x1210 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x1293 JUMP JUMPDEST POP POP SWAP2 POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2E3 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x365 JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x46852D0 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x320 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x12FA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x361 SWAP2 SWAP1 PUSH2 0x1331 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x376 PUSH2 0x938 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x3C4 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x3F9 JUMPI POP PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x407 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x43E JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP6 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 ISZERO PUSH2 0x48E JUMPI PUSH1 0x1 DUP6 PUSH1 0x0 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x496 PUSH2 0x960 JUMP JUMPDEST PUSH2 0x49F DUP8 PUSH2 0x96A JUMP JUMPDEST PUSH2 0x4A8 DUP7 PUSH2 0x778 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP6 PUSH1 0x0 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x4FB SWAP2 SWAP1 PUSH2 0x13AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B377FA2 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x56C SWAP2 SWAP1 PUSH2 0x1210 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5AD SWAP2 SWAP1 PUSH2 0x1293 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST PUSH2 0x5C4 PUSH2 0x97E JUMP JUMPDEST PUSH2 0x5CE PUSH1 0x0 PUSH2 0xA05 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DA PUSH2 0xA45 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x5FB PUSH2 0x844 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x653 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64A SWAP2 SWAP1 PUSH2 0xF11 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x65C DUP2 PUSH2 0xA05 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x68E PUSH2 0xA4D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6DA JUMPI PUSH2 0x6D9 PUSH2 0xF42 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x708 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP6 MLOAD SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x76B JUMPI PUSH2 0x741 DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x732 JUMPI PUSH2 0x731 PUSH2 0x13C8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP8 PUSH2 0x203 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x754 JUMPI PUSH2 0x753 PUSH2 0x13C8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x714 JUMP JUMPDEST POP DUP2 SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x780 PUSH2 0x97E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x363C56730E510C61B9B1C8DA206585B5F5FA0EB1F76E05C2FCF82EE006FFF9F5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x84F PUSH2 0xA75 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH2 0x884 PUSH2 0x97E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x88E PUSH2 0xA75 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8F2 PUSH2 0x683 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x968 PUSH2 0xA9D JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x972 PUSH2 0xA9D JUMP JUMPDEST PUSH2 0x97B DUP2 PUSH2 0xADD JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x986 PUSH2 0xA45 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x9A4 PUSH2 0x683 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xA03 JUMPI PUSH2 0x9C7 PUSH2 0xA45 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9FA SWAP2 SWAP1 PUSH2 0xF11 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0F PUSH2 0xA75 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH2 0xA41 DUP3 PUSH2 0xB63 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAA5 PUSH2 0xC3A JUMP JUMPDEST PUSH2 0xADB JUMPI PUSH1 0x40 MLOAD PUSH32 0xD7E6BCF800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xAE5 PUSH2 0xA9D JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB57 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP2 SWAP1 PUSH2 0xF11 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB60 DUP2 PUSH2 0xA05 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB6D PUSH2 0xA4D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 DUP3 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC44 PUSH2 0x938 JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC81 DUP2 PUSH2 0xC6E JUMP JUMPDEST DUP2 EQ PUSH2 0xC8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC9E DUP2 PUSH2 0xC78 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCCF DUP3 PUSH2 0xCA4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCDF DUP2 PUSH2 0xCC4 JUMP JUMPDEST DUP2 EQ PUSH2 0xCEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCFC DUP2 PUSH2 0xCD6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD15 DUP2 PUSH2 0xD02 JUMP JUMPDEST DUP2 EQ PUSH2 0xD20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD32 DUP2 PUSH2 0xD0C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD51 JUMPI PUSH2 0xD50 PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD5F DUP7 DUP3 DUP8 ADD PUSH2 0xC8F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD70 DUP7 DUP3 DUP8 ADD PUSH2 0xCED JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD81 DUP7 DUP3 DUP8 ADD PUSH2 0xD23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0xD94 DUP2 PUSH2 0xD02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDAF PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD8B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDCC JUMPI PUSH2 0xDCB PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDDA DUP6 DUP3 DUP7 ADD PUSH2 0xCED JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDEB DUP6 DUP3 DUP7 ADD PUSH2 0xCED JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE0B JUMPI PUSH2 0xE0A PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE19 DUP5 DUP3 DUP6 ADD PUSH2 0xC8F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE2B DUP2 PUSH2 0xCC4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE56 PUSH2 0xE51 PUSH2 0xE4C DUP5 PUSH2 0xCA4 JUMP JUMPDEST PUSH2 0xE31 JUMP JUMPDEST PUSH2 0xCA4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE68 DUP3 PUSH2 0xE3B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE7A DUP3 PUSH2 0xE5D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE8A DUP2 PUSH2 0xE6F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xEA5 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0xE22 JUMP JUMPDEST PUSH2 0xEB2 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xE81 JUMP JUMPDEST PUSH2 0xEBF PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xD8B JUMP JUMPDEST PUSH2 0xECC PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xD8B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE0 DUP3 PUSH2 0xE5D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEF0 DUP2 PUSH2 0xED5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF0B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEE7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF26 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE22 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xF7A DUP3 PUSH2 0xF31 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xF99 JUMPI PUSH2 0xF98 PUSH2 0xF42 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFAC PUSH2 0xC5A JUMP JUMPDEST SWAP1 POP PUSH2 0xFB8 DUP3 DUP3 PUSH2 0xF71 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xFD8 JUMPI PUSH2 0xFD7 PUSH2 0xF42 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1001 PUSH2 0xFFC DUP5 PUSH2 0xFBD JUMP JUMPDEST PUSH2 0xFA2 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1024 JUMPI PUSH2 0x1023 PUSH2 0xFE9 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x104D JUMPI DUP1 PUSH2 0x1039 DUP9 DUP3 PUSH2 0xC8F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1026 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x106C JUMPI PUSH2 0x106B PUSH2 0xF2C JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x107C DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xFEE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x109E JUMPI PUSH2 0x109D PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10BC JUMPI PUSH2 0x10BB PUSH2 0xC69 JUMP JUMPDEST JUMPDEST PUSH2 0x10C8 DUP7 DUP3 DUP8 ADD PUSH2 0x1057 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x10D9 DUP7 DUP3 DUP8 ADD PUSH2 0xCED JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x10EA DUP7 DUP3 DUP8 ADD PUSH2 0xD23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1129 DUP2 PUSH2 0xD02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x113B DUP4 DUP4 PUSH2 0x1120 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x115F DUP3 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x1169 DUP2 DUP6 PUSH2 0x10FF JUMP JUMPDEST SWAP4 POP PUSH2 0x1174 DUP4 PUSH2 0x1110 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11A5 JUMPI DUP2 MLOAD PUSH2 0x118C DUP9 DUP3 PUSH2 0x112F JUMP JUMPDEST SWAP8 POP PUSH2 0x1197 DUP4 PUSH2 0x1147 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1178 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11CC DUP2 DUP5 PUSH2 0x1154 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11EA JUMPI PUSH2 0x11E9 PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x11F8 DUP5 DUP3 DUP6 ADD PUSH2 0xCED JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x120A DUP2 PUSH2 0xC6E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1225 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1201 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x123A DUP2 PUSH2 0xCD6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x124B DUP3 PUSH2 0xCC4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x125B DUP2 PUSH2 0x1240 JUMP JUMPDEST DUP2 EQ PUSH2 0x1266 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1278 DUP2 PUSH2 0x1252 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x128D DUP2 PUSH2 0xD0C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x12AD JUMPI PUSH2 0x12AC PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12BB DUP8 DUP3 DUP9 ADD PUSH2 0x122B JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x12CC DUP8 DUP3 DUP9 ADD PUSH2 0x1269 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x12DD DUP8 DUP3 DUP9 ADD PUSH2 0x127E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x12EE DUP8 DUP3 DUP9 ADD PUSH2 0x127E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x130F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1201 JUMP JUMPDEST PUSH2 0x131C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xE22 JUMP JUMPDEST PUSH2 0x1329 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xD8B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1347 JUMPI PUSH2 0x1346 PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1355 DUP5 DUP3 DUP6 ADD PUSH2 0x127E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1397 PUSH2 0x1392 PUSH2 0x138D DUP5 PUSH2 0x135E JUMP JUMPDEST PUSH2 0xE31 JUMP JUMPDEST PUSH2 0x1368 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13A7 DUP2 PUSH2 0x137C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x13C2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x139E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP3 EQ SDIV 0xC4 DUP5 0xCD DUP16 ADDMOD PUSH28 0xCE149E0B629C117AE2F5F6CE02E02CC9CEAB8CC5F1B3A064736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "708:3783:32:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@__Ownable2Step_init_598": { + "entryPoint": 2400, + "id": 598, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__Ownable_init_752": { + "entryPoint": 2410, + "id": 752, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@__Ownable_init_unchained_779": { + "entryPoint": 2781, + "id": 779, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkInitializing_1068": { + "entryPoint": 2717, + "id": 1068, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkOwner_820": { + "entryPoint": 2430, + "id": 820, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getInitializableStorage_1145": { + "entryPoint": 2360, + "id": 1145, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getOwnable2StepStorage_586": { + "entryPoint": 2677, + "id": 586, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getOwnableStorage_723": { + "entryPoint": 2637, + "id": 723, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_isInitializing_1136": { + "entryPoint": 3130, + "id": 1136, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_msgSender_1174": { + "entryPoint": 2629, + "id": 1174, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_transferOwnership_672": { + "entryPoint": 2565, + "id": 672, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_891": { + "entryPoint": 2915, + "id": 891, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@acceptOwnership_696": { + "entryPoint": 1488, + "id": 696, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@domainHashToRecord_6844": { + "entryPoint": 1293, + "id": 6844, + "parameterSlots": 1, + "returnSlots": 4 + }, + "@initialize_6823": { + "entryPoint": 876, + "id": 6823, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@isVerifiedForDomainHash_6943": { + "entryPoint": 515, + "id": 6943, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@isVerifiedForMultipleDomainHashes_6902": { + "entryPoint": 1723, + "id": 6902, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@owner_803": { + "entryPoint": 1667, + "id": 803, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@pendingOwner_620": { + "entryPoint": 2116, + "id": 620, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@registry_6794": { + "entryPoint": 1631, + "id": 6794, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@renounceOwnership_834": { + "entryPoint": 1468, + "id": 834, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@setRegistry_6970": { + "entryPoint": 1912, + "id": 6970, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@transferOwnership_648": { + "entryPoint": 2172, + "id": 648, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr": { + "entryPoint": 4078, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3309, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 4651, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr": { + "entryPoint": 4183, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes32": { + "entryPoint": 3215, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_contract$_IVerifier_$7453_fromMemory": { + "entryPoint": 4713, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3363, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 4734, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 4564, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3509, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_contract$_IVerifier_$7453t_uint256t_uint256_fromMemory": { + "entryPoint": 4755, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptrt_addresst_uint256": { + "entryPoint": 4229, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 3573, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_addresst_uint256": { + "entryPoint": 3384, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 4913, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 4399, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3618, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4436, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 4609, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack": { + "entryPoint": 3815, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack": { + "entryPoint": 3713, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_rational_1_by_1_to_t_uint64_fromStack": { + "entryPoint": 5022, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 4384, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3467, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3857, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_contract$_IVerifier_$7453_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3728, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 4530, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 4624, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32_t_address_t_uint256__to_t_bytes32_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 4858, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed": { + "entryPoint": 3830, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed": { + "entryPoint": 5037, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3482, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 4002, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 3162, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr": { + "entryPoint": 4029, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4368, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4340, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4423, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4351, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3268, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 3182, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_contract$_IVerifier_$7453": { + "entryPoint": 4672, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_rational_1_by_1": { + "entryPoint": 4958, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3236, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3330, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint64": { + "entryPoint": 4968, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_ISciRegistry_$7088_to_t_address": { + "entryPoint": 3797, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_IVerifier_$7453_to_t_address": { + "entryPoint": 3695, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_rational_1_by_1_to_t_uint64": { + "entryPoint": 4988, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 3677, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 3643, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 3953, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 3633, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x32": { + "entryPoint": 5064, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 3906, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 3884, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 4073, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 3177, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3172, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 3889, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3286, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 3192, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_contract$_IVerifier_$7453": { + "entryPoint": 4690, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3340, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:14873:37", + "nodeType": "YulBlock", + "src": "0:14873:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "379:32:37", + "nodeType": "YulBlock", + "src": "379:32:37", + "statements": [ + { + "nativeSrc": "389:16:37", + "nodeType": "YulAssignment", + "src": "389:16:37", + "value": { + "name": "value", + "nativeSrc": "400:5:37", + "nodeType": "YulIdentifier", + "src": "400:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:37", + "nodeType": "YulIdentifier", + "src": "389:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "334:77:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:37", + "nodeType": "YulTypedName", + "src": "361:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:37", + "nodeType": "YulTypedName", + "src": "371:7:37", + "type": "" + } + ], + "src": "334:77:37" + }, + { + "body": { + "nativeSrc": "460:79:37", + "nodeType": "YulBlock", + "src": "460:79:37", + "statements": [ + { + "body": { + "nativeSrc": "517:16:37", + "nodeType": "YulBlock", + "src": "517:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "526:1:37", + "nodeType": "YulLiteral", + "src": "526:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "529:1:37", + "nodeType": "YulLiteral", + "src": "529:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "519:6:37", + "nodeType": "YulIdentifier", + "src": "519:6:37" + }, + "nativeSrc": "519:12:37", + "nodeType": "YulFunctionCall", + "src": "519:12:37" + }, + "nativeSrc": "519:12:37", + "nodeType": "YulExpressionStatement", + "src": "519:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "483:5:37", + "nodeType": "YulIdentifier", + "src": "483:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "508:5:37", + "nodeType": "YulIdentifier", + "src": "508:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "490:17:37", + "nodeType": "YulIdentifier", + "src": "490:17:37" + }, + "nativeSrc": "490:24:37", + "nodeType": "YulFunctionCall", + "src": "490:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "480:2:37", + "nodeType": "YulIdentifier", + "src": "480:2:37" + }, + "nativeSrc": "480:35:37", + "nodeType": "YulFunctionCall", + "src": "480:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "473:6:37", + "nodeType": "YulIdentifier", + "src": "473:6:37" + }, + "nativeSrc": "473:43:37", + "nodeType": "YulFunctionCall", + "src": "473:43:37" + }, + "nativeSrc": "470:63:37", + "nodeType": "YulIf", + "src": "470:63:37" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nativeSrc": "417:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "453:5:37", + "nodeType": "YulTypedName", + "src": "453:5:37", + "type": "" + } + ], + "src": "417:122:37" + }, + { + "body": { + "nativeSrc": "597:87:37", + "nodeType": "YulBlock", + "src": "597:87:37", + "statements": [ + { + "nativeSrc": "607:29:37", + "nodeType": "YulAssignment", + "src": "607:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "629:6:37", + "nodeType": "YulIdentifier", + "src": "629:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "616:12:37", + "nodeType": "YulIdentifier", + "src": "616:12:37" + }, + "nativeSrc": "616:20:37", + "nodeType": "YulFunctionCall", + "src": "616:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "607:5:37", + "nodeType": "YulIdentifier", + "src": "607:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "672:5:37", + "nodeType": "YulIdentifier", + "src": "672:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nativeSrc": "645:26:37", + "nodeType": "YulIdentifier", + "src": "645:26:37" + }, + "nativeSrc": "645:33:37", + "nodeType": "YulFunctionCall", + "src": "645:33:37" + }, + "nativeSrc": "645:33:37", + "nodeType": "YulExpressionStatement", + "src": "645:33:37" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nativeSrc": "545:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "575:6:37", + "nodeType": "YulTypedName", + "src": "575:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "583:3:37", + "nodeType": "YulTypedName", + "src": "583:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "591:5:37", + "nodeType": "YulTypedName", + "src": "591:5:37", + "type": "" + } + ], + "src": "545:139:37" + }, + { + "body": { + "nativeSrc": "735:81:37", + "nodeType": "YulBlock", + "src": "735:81:37", + "statements": [ + { + "nativeSrc": "745:65:37", + "nodeType": "YulAssignment", + "src": "745:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "760:5:37", + "nodeType": "YulIdentifier", + "src": "760:5:37" + }, + { + "kind": "number", + "nativeSrc": "767:42:37", + "nodeType": "YulLiteral", + "src": "767:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "756:3:37", + "nodeType": "YulIdentifier", + "src": "756:3:37" + }, + "nativeSrc": "756:54:37", + "nodeType": "YulFunctionCall", + "src": "756:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "745:7:37", + "nodeType": "YulIdentifier", + "src": "745:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "690:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "717:5:37", + "nodeType": "YulTypedName", + "src": "717:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "727:7:37", + "nodeType": "YulTypedName", + "src": "727:7:37", + "type": "" + } + ], + "src": "690:126:37" + }, + { + "body": { + "nativeSrc": "867:51:37", + "nodeType": "YulBlock", + "src": "867:51:37", + "statements": [ + { + "nativeSrc": "877:35:37", + "nodeType": "YulAssignment", + "src": "877:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "906:5:37", + "nodeType": "YulIdentifier", + "src": "906:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "888:17:37", + "nodeType": "YulIdentifier", + "src": "888:17:37" + }, + "nativeSrc": "888:24:37", + "nodeType": "YulFunctionCall", + "src": "888:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "877:7:37", + "nodeType": "YulIdentifier", + "src": "877:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "822:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "849:5:37", + "nodeType": "YulTypedName", + "src": "849:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "859:7:37", + "nodeType": "YulTypedName", + "src": "859:7:37", + "type": "" + } + ], + "src": "822:96:37" + }, + { + "body": { + "nativeSrc": "967:79:37", + "nodeType": "YulBlock", + "src": "967:79:37", + "statements": [ + { + "body": { + "nativeSrc": "1024:16:37", + "nodeType": "YulBlock", + "src": "1024:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1033:1:37", + "nodeType": "YulLiteral", + "src": "1033:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1036:1:37", + "nodeType": "YulLiteral", + "src": "1036:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1026:6:37", + "nodeType": "YulIdentifier", + "src": "1026:6:37" + }, + "nativeSrc": "1026:12:37", + "nodeType": "YulFunctionCall", + "src": "1026:12:37" + }, + "nativeSrc": "1026:12:37", + "nodeType": "YulExpressionStatement", + "src": "1026:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "990:5:37", + "nodeType": "YulIdentifier", + "src": "990:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1015:5:37", + "nodeType": "YulIdentifier", + "src": "1015:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "997:17:37", + "nodeType": "YulIdentifier", + "src": "997:17:37" + }, + "nativeSrc": "997:24:37", + "nodeType": "YulFunctionCall", + "src": "997:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "987:2:37", + "nodeType": "YulIdentifier", + "src": "987:2:37" + }, + "nativeSrc": "987:35:37", + "nodeType": "YulFunctionCall", + "src": "987:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "980:6:37", + "nodeType": "YulIdentifier", + "src": "980:6:37" + }, + "nativeSrc": "980:43:37", + "nodeType": "YulFunctionCall", + "src": "980:43:37" + }, + "nativeSrc": "977:63:37", + "nodeType": "YulIf", + "src": "977:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "924:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "960:5:37", + "nodeType": "YulTypedName", + "src": "960:5:37", + "type": "" + } + ], + "src": "924:122:37" + }, + { + "body": { + "nativeSrc": "1104:87:37", + "nodeType": "YulBlock", + "src": "1104:87:37", + "statements": [ + { + "nativeSrc": "1114:29:37", + "nodeType": "YulAssignment", + "src": "1114:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1136:6:37", + "nodeType": "YulIdentifier", + "src": "1136:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1123:12:37", + "nodeType": "YulIdentifier", + "src": "1123:12:37" + }, + "nativeSrc": "1123:20:37", + "nodeType": "YulFunctionCall", + "src": "1123:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1114:5:37", + "nodeType": "YulIdentifier", + "src": "1114:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1179:5:37", + "nodeType": "YulIdentifier", + "src": "1179:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "1152:26:37", + "nodeType": "YulIdentifier", + "src": "1152:26:37" + }, + "nativeSrc": "1152:33:37", + "nodeType": "YulFunctionCall", + "src": "1152:33:37" + }, + "nativeSrc": "1152:33:37", + "nodeType": "YulExpressionStatement", + "src": "1152:33:37" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "1052:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1082:6:37", + "nodeType": "YulTypedName", + "src": "1082:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1090:3:37", + "nodeType": "YulTypedName", + "src": "1090:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1098:5:37", + "nodeType": "YulTypedName", + "src": "1098:5:37", + "type": "" + } + ], + "src": "1052:139:37" + }, + { + "body": { + "nativeSrc": "1242:32:37", + "nodeType": "YulBlock", + "src": "1242:32:37", + "statements": [ + { + "nativeSrc": "1252:16:37", + "nodeType": "YulAssignment", + "src": "1252:16:37", + "value": { + "name": "value", + "nativeSrc": "1263:5:37", + "nodeType": "YulIdentifier", + "src": "1263:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1252:7:37", + "nodeType": "YulIdentifier", + "src": "1252:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "1197:77:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1224:5:37", + "nodeType": "YulTypedName", + "src": "1224:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1234:7:37", + "nodeType": "YulTypedName", + "src": "1234:7:37", + "type": "" + } + ], + "src": "1197:77:37" + }, + { + "body": { + "nativeSrc": "1323:79:37", + "nodeType": "YulBlock", + "src": "1323:79:37", + "statements": [ + { + "body": { + "nativeSrc": "1380:16:37", + "nodeType": "YulBlock", + "src": "1380:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1389:1:37", + "nodeType": "YulLiteral", + "src": "1389:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1392:1:37", + "nodeType": "YulLiteral", + "src": "1392:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1382:6:37", + "nodeType": "YulIdentifier", + "src": "1382:6:37" + }, + "nativeSrc": "1382:12:37", + "nodeType": "YulFunctionCall", + "src": "1382:12:37" + }, + "nativeSrc": "1382:12:37", + "nodeType": "YulExpressionStatement", + "src": "1382:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1346:5:37", + "nodeType": "YulIdentifier", + "src": "1346:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1371:5:37", + "nodeType": "YulIdentifier", + "src": "1371:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1353:17:37", + "nodeType": "YulIdentifier", + "src": "1353:17:37" + }, + "nativeSrc": "1353:24:37", + "nodeType": "YulFunctionCall", + "src": "1353:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1343:2:37", + "nodeType": "YulIdentifier", + "src": "1343:2:37" + }, + "nativeSrc": "1343:35:37", + "nodeType": "YulFunctionCall", + "src": "1343:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1336:6:37", + "nodeType": "YulIdentifier", + "src": "1336:6:37" + }, + "nativeSrc": "1336:43:37", + "nodeType": "YulFunctionCall", + "src": "1336:43:37" + }, + "nativeSrc": "1333:63:37", + "nodeType": "YulIf", + "src": "1333:63:37" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "1280:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1316:5:37", + "nodeType": "YulTypedName", + "src": "1316:5:37", + "type": "" + } + ], + "src": "1280:122:37" + }, + { + "body": { + "nativeSrc": "1460:87:37", + "nodeType": "YulBlock", + "src": "1460:87:37", + "statements": [ + { + "nativeSrc": "1470:29:37", + "nodeType": "YulAssignment", + "src": "1470:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1492:6:37", + "nodeType": "YulIdentifier", + "src": "1492:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1479:12:37", + "nodeType": "YulIdentifier", + "src": "1479:12:37" + }, + "nativeSrc": "1479:20:37", + "nodeType": "YulFunctionCall", + "src": "1479:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1470:5:37", + "nodeType": "YulIdentifier", + "src": "1470:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1535:5:37", + "nodeType": "YulIdentifier", + "src": "1535:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "1508:26:37", + "nodeType": "YulIdentifier", + "src": "1508:26:37" + }, + "nativeSrc": "1508:33:37", + "nodeType": "YulFunctionCall", + "src": "1508:33:37" + }, + "nativeSrc": "1508:33:37", + "nodeType": "YulExpressionStatement", + "src": "1508:33:37" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "1408:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1438:6:37", + "nodeType": "YulTypedName", + "src": "1438:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1446:3:37", + "nodeType": "YulTypedName", + "src": "1446:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1454:5:37", + "nodeType": "YulTypedName", + "src": "1454:5:37", + "type": "" + } + ], + "src": "1408:139:37" + }, + { + "body": { + "nativeSrc": "1653:519:37", + "nodeType": "YulBlock", + "src": "1653:519:37", + "statements": [ + { + "body": { + "nativeSrc": "1699:83:37", + "nodeType": "YulBlock", + "src": "1699:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1701:77:37", + "nodeType": "YulIdentifier", + "src": "1701:77:37" + }, + "nativeSrc": "1701:79:37", + "nodeType": "YulFunctionCall", + "src": "1701:79:37" + }, + "nativeSrc": "1701:79:37", + "nodeType": "YulExpressionStatement", + "src": "1701:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1674:7:37", + "nodeType": "YulIdentifier", + "src": "1674:7:37" + }, + { + "name": "headStart", + "nativeSrc": "1683:9:37", + "nodeType": "YulIdentifier", + "src": "1683:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1670:3:37", + "nodeType": "YulIdentifier", + "src": "1670:3:37" + }, + "nativeSrc": "1670:23:37", + "nodeType": "YulFunctionCall", + "src": "1670:23:37" + }, + { + "kind": "number", + "nativeSrc": "1695:2:37", + "nodeType": "YulLiteral", + "src": "1695:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1666:3:37", + "nodeType": "YulIdentifier", + "src": "1666:3:37" + }, + "nativeSrc": "1666:32:37", + "nodeType": "YulFunctionCall", + "src": "1666:32:37" + }, + "nativeSrc": "1663:119:37", + "nodeType": "YulIf", + "src": "1663:119:37" + }, + { + "nativeSrc": "1792:117:37", + "nodeType": "YulBlock", + "src": "1792:117:37", + "statements": [ + { + "nativeSrc": "1807:15:37", + "nodeType": "YulVariableDeclaration", + "src": "1807:15:37", + "value": { + "kind": "number", + "nativeSrc": "1821:1:37", + "nodeType": "YulLiteral", + "src": "1821:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1811:6:37", + "nodeType": "YulTypedName", + "src": "1811:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1836:63:37", + "nodeType": "YulAssignment", + "src": "1836:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1871:9:37", + "nodeType": "YulIdentifier", + "src": "1871:9:37" + }, + { + "name": "offset", + "nativeSrc": "1882:6:37", + "nodeType": "YulIdentifier", + "src": "1882:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1867:3:37", + "nodeType": "YulIdentifier", + "src": "1867:3:37" + }, + "nativeSrc": "1867:22:37", + "nodeType": "YulFunctionCall", + "src": "1867:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1891:7:37", + "nodeType": "YulIdentifier", + "src": "1891:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "1846:20:37", + "nodeType": "YulIdentifier", + "src": "1846:20:37" + }, + "nativeSrc": "1846:53:37", + "nodeType": "YulFunctionCall", + "src": "1846:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1836:6:37", + "nodeType": "YulIdentifier", + "src": "1836:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "1919:118:37", + "nodeType": "YulBlock", + "src": "1919:118:37", + "statements": [ + { + "nativeSrc": "1934:16:37", + "nodeType": "YulVariableDeclaration", + "src": "1934:16:37", + "value": { + "kind": "number", + "nativeSrc": "1948:2:37", + "nodeType": "YulLiteral", + "src": "1948:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1938:6:37", + "nodeType": "YulTypedName", + "src": "1938:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1964:63:37", + "nodeType": "YulAssignment", + "src": "1964:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1999:9:37", + "nodeType": "YulIdentifier", + "src": "1999:9:37" + }, + { + "name": "offset", + "nativeSrc": "2010:6:37", + "nodeType": "YulIdentifier", + "src": "2010:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1995:3:37", + "nodeType": "YulIdentifier", + "src": "1995:3:37" + }, + "nativeSrc": "1995:22:37", + "nodeType": "YulFunctionCall", + "src": "1995:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "2019:7:37", + "nodeType": "YulIdentifier", + "src": "2019:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "1974:20:37", + "nodeType": "YulIdentifier", + "src": "1974:20:37" + }, + "nativeSrc": "1974:53:37", + "nodeType": "YulFunctionCall", + "src": "1974:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1964:6:37", + "nodeType": "YulIdentifier", + "src": "1964:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "2047:118:37", + "nodeType": "YulBlock", + "src": "2047:118:37", + "statements": [ + { + "nativeSrc": "2062:16:37", + "nodeType": "YulVariableDeclaration", + "src": "2062:16:37", + "value": { + "kind": "number", + "nativeSrc": "2076:2:37", + "nodeType": "YulLiteral", + "src": "2076:2:37", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2066:6:37", + "nodeType": "YulTypedName", + "src": "2066:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "2092:63:37", + "nodeType": "YulAssignment", + "src": "2092:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2127:9:37", + "nodeType": "YulIdentifier", + "src": "2127:9:37" + }, + { + "name": "offset", + "nativeSrc": "2138:6:37", + "nodeType": "YulIdentifier", + "src": "2138:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2123:3:37", + "nodeType": "YulIdentifier", + "src": "2123:3:37" + }, + "nativeSrc": "2123:22:37", + "nodeType": "YulFunctionCall", + "src": "2123:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "2147:7:37", + "nodeType": "YulIdentifier", + "src": "2147:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "2102:20:37", + "nodeType": "YulIdentifier", + "src": "2102:20:37" + }, + "nativeSrc": "2102:53:37", + "nodeType": "YulFunctionCall", + "src": "2102:53:37" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "2092:6:37", + "nodeType": "YulIdentifier", + "src": "2092:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_addresst_uint256", + "nativeSrc": "1553:619:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1607:9:37", + "nodeType": "YulTypedName", + "src": "1607:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1618:7:37", + "nodeType": "YulTypedName", + "src": "1618:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1630:6:37", + "nodeType": "YulTypedName", + "src": "1630:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1638:6:37", + "nodeType": "YulTypedName", + "src": "1638:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "1646:6:37", + "nodeType": "YulTypedName", + "src": "1646:6:37", + "type": "" + } + ], + "src": "1553:619:37" + }, + { + "body": { + "nativeSrc": "2243:53:37", + "nodeType": "YulBlock", + "src": "2243:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2260:3:37", + "nodeType": "YulIdentifier", + "src": "2260:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2283:5:37", + "nodeType": "YulIdentifier", + "src": "2283:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "2265:17:37", + "nodeType": "YulIdentifier", + "src": "2265:17:37" + }, + "nativeSrc": "2265:24:37", + "nodeType": "YulFunctionCall", + "src": "2265:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2253:6:37", + "nodeType": "YulIdentifier", + "src": "2253:6:37" + }, + "nativeSrc": "2253:37:37", + "nodeType": "YulFunctionCall", + "src": "2253:37:37" + }, + "nativeSrc": "2253:37:37", + "nodeType": "YulExpressionStatement", + "src": "2253:37:37" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "2178:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2231:5:37", + "nodeType": "YulTypedName", + "src": "2231:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2238:3:37", + "nodeType": "YulTypedName", + "src": "2238:3:37", + "type": "" + } + ], + "src": "2178:118:37" + }, + { + "body": { + "nativeSrc": "2400:124:37", + "nodeType": "YulBlock", + "src": "2400:124:37", + "statements": [ + { + "nativeSrc": "2410:26:37", + "nodeType": "YulAssignment", + "src": "2410:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2422:9:37", + "nodeType": "YulIdentifier", + "src": "2422:9:37" + }, + { + "kind": "number", + "nativeSrc": "2433:2:37", + "nodeType": "YulLiteral", + "src": "2433:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2418:3:37", + "nodeType": "YulIdentifier", + "src": "2418:3:37" + }, + "nativeSrc": "2418:18:37", + "nodeType": "YulFunctionCall", + "src": "2418:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2410:4:37", + "nodeType": "YulIdentifier", + "src": "2410:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2490:6:37", + "nodeType": "YulIdentifier", + "src": "2490:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2503:9:37", + "nodeType": "YulIdentifier", + "src": "2503:9:37" + }, + { + "kind": "number", + "nativeSrc": "2514:1:37", + "nodeType": "YulLiteral", + "src": "2514:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2499:3:37", + "nodeType": "YulIdentifier", + "src": "2499:3:37" + }, + "nativeSrc": "2499:17:37", + "nodeType": "YulFunctionCall", + "src": "2499:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "2446:43:37", + "nodeType": "YulIdentifier", + "src": "2446:43:37" + }, + "nativeSrc": "2446:71:37", + "nodeType": "YulFunctionCall", + "src": "2446:71:37" + }, + "nativeSrc": "2446:71:37", + "nodeType": "YulExpressionStatement", + "src": "2446:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "2302:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2372:9:37", + "nodeType": "YulTypedName", + "src": "2372:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2384:6:37", + "nodeType": "YulTypedName", + "src": "2384:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2395:4:37", + "nodeType": "YulTypedName", + "src": "2395:4:37", + "type": "" + } + ], + "src": "2302:222:37" + }, + { + "body": { + "nativeSrc": "2613:391:37", + "nodeType": "YulBlock", + "src": "2613:391:37", + "statements": [ + { + "body": { + "nativeSrc": "2659:83:37", + "nodeType": "YulBlock", + "src": "2659:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2661:77:37", + "nodeType": "YulIdentifier", + "src": "2661:77:37" + }, + "nativeSrc": "2661:79:37", + "nodeType": "YulFunctionCall", + "src": "2661:79:37" + }, + "nativeSrc": "2661:79:37", + "nodeType": "YulExpressionStatement", + "src": "2661:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2634:7:37", + "nodeType": "YulIdentifier", + "src": "2634:7:37" + }, + { + "name": "headStart", + "nativeSrc": "2643:9:37", + "nodeType": "YulIdentifier", + "src": "2643:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2630:3:37", + "nodeType": "YulIdentifier", + "src": "2630:3:37" + }, + "nativeSrc": "2630:23:37", + "nodeType": "YulFunctionCall", + "src": "2630:23:37" + }, + { + "kind": "number", + "nativeSrc": "2655:2:37", + "nodeType": "YulLiteral", + "src": "2655:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2626:3:37", + "nodeType": "YulIdentifier", + "src": "2626:3:37" + }, + "nativeSrc": "2626:32:37", + "nodeType": "YulFunctionCall", + "src": "2626:32:37" + }, + "nativeSrc": "2623:119:37", + "nodeType": "YulIf", + "src": "2623:119:37" + }, + { + "nativeSrc": "2752:117:37", + "nodeType": "YulBlock", + "src": "2752:117:37", + "statements": [ + { + "nativeSrc": "2767:15:37", + "nodeType": "YulVariableDeclaration", + "src": "2767:15:37", + "value": { + "kind": "number", + "nativeSrc": "2781:1:37", + "nodeType": "YulLiteral", + "src": "2781:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2771:6:37", + "nodeType": "YulTypedName", + "src": "2771:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "2796:63:37", + "nodeType": "YulAssignment", + "src": "2796:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2831:9:37", + "nodeType": "YulIdentifier", + "src": "2831:9:37" + }, + { + "name": "offset", + "nativeSrc": "2842:6:37", + "nodeType": "YulIdentifier", + "src": "2842:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2827:3:37", + "nodeType": "YulIdentifier", + "src": "2827:3:37" + }, + "nativeSrc": "2827:22:37", + "nodeType": "YulFunctionCall", + "src": "2827:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "2851:7:37", + "nodeType": "YulIdentifier", + "src": "2851:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "2806:20:37", + "nodeType": "YulIdentifier", + "src": "2806:20:37" + }, + "nativeSrc": "2806:53:37", + "nodeType": "YulFunctionCall", + "src": "2806:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2796:6:37", + "nodeType": "YulIdentifier", + "src": "2796:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "2879:118:37", + "nodeType": "YulBlock", + "src": "2879:118:37", + "statements": [ + { + "nativeSrc": "2894:16:37", + "nodeType": "YulVariableDeclaration", + "src": "2894:16:37", + "value": { + "kind": "number", + "nativeSrc": "2908:2:37", + "nodeType": "YulLiteral", + "src": "2908:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2898:6:37", + "nodeType": "YulTypedName", + "src": "2898:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "2924:63:37", + "nodeType": "YulAssignment", + "src": "2924:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2959:9:37", + "nodeType": "YulIdentifier", + "src": "2959:9:37" + }, + { + "name": "offset", + "nativeSrc": "2970:6:37", + "nodeType": "YulIdentifier", + "src": "2970:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2955:3:37", + "nodeType": "YulIdentifier", + "src": "2955:3:37" + }, + "nativeSrc": "2955:22:37", + "nodeType": "YulFunctionCall", + "src": "2955:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "2979:7:37", + "nodeType": "YulIdentifier", + "src": "2979:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "2934:20:37", + "nodeType": "YulIdentifier", + "src": "2934:20:37" + }, + "nativeSrc": "2934:53:37", + "nodeType": "YulFunctionCall", + "src": "2934:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "2924:6:37", + "nodeType": "YulIdentifier", + "src": "2924:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "2530:474:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2575:9:37", + "nodeType": "YulTypedName", + "src": "2575:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2586:7:37", + "nodeType": "YulTypedName", + "src": "2586:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2598:6:37", + "nodeType": "YulTypedName", + "src": "2598:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2606:6:37", + "nodeType": "YulTypedName", + "src": "2606:6:37", + "type": "" + } + ], + "src": "2530:474:37" + }, + { + "body": { + "nativeSrc": "3076:263:37", + "nodeType": "YulBlock", + "src": "3076:263:37", + "statements": [ + { + "body": { + "nativeSrc": "3122:83:37", + "nodeType": "YulBlock", + "src": "3122:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3124:77:37", + "nodeType": "YulIdentifier", + "src": "3124:77:37" + }, + "nativeSrc": "3124:79:37", + "nodeType": "YulFunctionCall", + "src": "3124:79:37" + }, + "nativeSrc": "3124:79:37", + "nodeType": "YulExpressionStatement", + "src": "3124:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3097:7:37", + "nodeType": "YulIdentifier", + "src": "3097:7:37" + }, + { + "name": "headStart", + "nativeSrc": "3106:9:37", + "nodeType": "YulIdentifier", + "src": "3106:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3093:3:37", + "nodeType": "YulIdentifier", + "src": "3093:3:37" + }, + "nativeSrc": "3093:23:37", + "nodeType": "YulFunctionCall", + "src": "3093:23:37" + }, + { + "kind": "number", + "nativeSrc": "3118:2:37", + "nodeType": "YulLiteral", + "src": "3118:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3089:3:37", + "nodeType": "YulIdentifier", + "src": "3089:3:37" + }, + "nativeSrc": "3089:32:37", + "nodeType": "YulFunctionCall", + "src": "3089:32:37" + }, + "nativeSrc": "3086:119:37", + "nodeType": "YulIf", + "src": "3086:119:37" + }, + { + "nativeSrc": "3215:117:37", + "nodeType": "YulBlock", + "src": "3215:117:37", + "statements": [ + { + "nativeSrc": "3230:15:37", + "nodeType": "YulVariableDeclaration", + "src": "3230:15:37", + "value": { + "kind": "number", + "nativeSrc": "3244:1:37", + "nodeType": "YulLiteral", + "src": "3244:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3234:6:37", + "nodeType": "YulTypedName", + "src": "3234:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3259:63:37", + "nodeType": "YulAssignment", + "src": "3259:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3294:9:37", + "nodeType": "YulIdentifier", + "src": "3294:9:37" + }, + { + "name": "offset", + "nativeSrc": "3305:6:37", + "nodeType": "YulIdentifier", + "src": "3305:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3290:3:37", + "nodeType": "YulIdentifier", + "src": "3290:3:37" + }, + "nativeSrc": "3290:22:37", + "nodeType": "YulFunctionCall", + "src": "3290:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3314:7:37", + "nodeType": "YulIdentifier", + "src": "3314:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "3269:20:37", + "nodeType": "YulIdentifier", + "src": "3269:20:37" + }, + "nativeSrc": "3269:53:37", + "nodeType": "YulFunctionCall", + "src": "3269:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3259:6:37", + "nodeType": "YulIdentifier", + "src": "3259:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "3010:329:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3046:9:37", + "nodeType": "YulTypedName", + "src": "3046:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3057:7:37", + "nodeType": "YulTypedName", + "src": "3057:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3069:6:37", + "nodeType": "YulTypedName", + "src": "3069:6:37", + "type": "" + } + ], + "src": "3010:329:37" + }, + { + "body": { + "nativeSrc": "3410:53:37", + "nodeType": "YulBlock", + "src": "3410:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3427:3:37", + "nodeType": "YulIdentifier", + "src": "3427:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3450:5:37", + "nodeType": "YulIdentifier", + "src": "3450:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "3432:17:37", + "nodeType": "YulIdentifier", + "src": "3432:17:37" + }, + "nativeSrc": "3432:24:37", + "nodeType": "YulFunctionCall", + "src": "3432:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3420:6:37", + "nodeType": "YulIdentifier", + "src": "3420:6:37" + }, + "nativeSrc": "3420:37:37", + "nodeType": "YulFunctionCall", + "src": "3420:37:37" + }, + "nativeSrc": "3420:37:37", + "nodeType": "YulExpressionStatement", + "src": "3420:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "3345:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3398:5:37", + "nodeType": "YulTypedName", + "src": "3398:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3405:3:37", + "nodeType": "YulTypedName", + "src": "3405:3:37", + "type": "" + } + ], + "src": "3345:118:37" + }, + { + "body": { + "nativeSrc": "3501:28:37", + "nodeType": "YulBlock", + "src": "3501:28:37", + "statements": [ + { + "nativeSrc": "3511:12:37", + "nodeType": "YulAssignment", + "src": "3511:12:37", + "value": { + "name": "value", + "nativeSrc": "3518:5:37", + "nodeType": "YulIdentifier", + "src": "3518:5:37" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "3511:3:37", + "nodeType": "YulIdentifier", + "src": "3511:3:37" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "3469:60:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3487:5:37", + "nodeType": "YulTypedName", + "src": "3487:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "3497:3:37", + "nodeType": "YulTypedName", + "src": "3497:3:37", + "type": "" + } + ], + "src": "3469:60:37" + }, + { + "body": { + "nativeSrc": "3595:82:37", + "nodeType": "YulBlock", + "src": "3595:82:37", + "statements": [ + { + "nativeSrc": "3605:66:37", + "nodeType": "YulAssignment", + "src": "3605:66:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3663:5:37", + "nodeType": "YulIdentifier", + "src": "3663:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3645:17:37", + "nodeType": "YulIdentifier", + "src": "3645:17:37" + }, + "nativeSrc": "3645:24:37", + "nodeType": "YulFunctionCall", + "src": "3645:24:37" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "3636:8:37", + "nodeType": "YulIdentifier", + "src": "3636:8:37" + }, + "nativeSrc": "3636:34:37", + "nodeType": "YulFunctionCall", + "src": "3636:34:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3618:17:37", + "nodeType": "YulIdentifier", + "src": "3618:17:37" + }, + "nativeSrc": "3618:53:37", + "nodeType": "YulFunctionCall", + "src": "3618:53:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "3605:9:37", + "nodeType": "YulIdentifier", + "src": "3605:9:37" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "3535:142:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3575:5:37", + "nodeType": "YulTypedName", + "src": "3575:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "3585:9:37", + "nodeType": "YulTypedName", + "src": "3585:9:37", + "type": "" + } + ], + "src": "3535:142:37" + }, + { + "body": { + "nativeSrc": "3743:66:37", + "nodeType": "YulBlock", + "src": "3743:66:37", + "statements": [ + { + "nativeSrc": "3753:50:37", + "nodeType": "YulAssignment", + "src": "3753:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3797:5:37", + "nodeType": "YulIdentifier", + "src": "3797:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "3766:30:37", + "nodeType": "YulIdentifier", + "src": "3766:30:37" + }, + "nativeSrc": "3766:37:37", + "nodeType": "YulFunctionCall", + "src": "3766:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "3753:9:37", + "nodeType": "YulIdentifier", + "src": "3753:9:37" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "3683:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3723:5:37", + "nodeType": "YulTypedName", + "src": "3723:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "3733:9:37", + "nodeType": "YulTypedName", + "src": "3733:9:37", + "type": "" + } + ], + "src": "3683:126:37" + }, + { + "body": { + "nativeSrc": "3893:66:37", + "nodeType": "YulBlock", + "src": "3893:66:37", + "statements": [ + { + "nativeSrc": "3903:50:37", + "nodeType": "YulAssignment", + "src": "3903:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3947:5:37", + "nodeType": "YulIdentifier", + "src": "3947:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "3916:30:37", + "nodeType": "YulIdentifier", + "src": "3916:30:37" + }, + "nativeSrc": "3916:37:37", + "nodeType": "YulFunctionCall", + "src": "3916:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "3903:9:37", + "nodeType": "YulIdentifier", + "src": "3903:9:37" + } + ] + } + ] + }, + "name": "convert_t_contract$_IVerifier_$7453_to_t_address", + "nativeSrc": "3815:144:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3873:5:37", + "nodeType": "YulTypedName", + "src": "3873:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "3883:9:37", + "nodeType": "YulTypedName", + "src": "3883:9:37", + "type": "" + } + ], + "src": "3815:144:37" + }, + { + "body": { + "nativeSrc": "4048:84:37", + "nodeType": "YulBlock", + "src": "4048:84:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4065:3:37", + "nodeType": "YulIdentifier", + "src": "4065:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4119:5:37", + "nodeType": "YulIdentifier", + "src": "4119:5:37" + } + ], + "functionName": { + "name": "convert_t_contract$_IVerifier_$7453_to_t_address", + "nativeSrc": "4070:48:37", + "nodeType": "YulIdentifier", + "src": "4070:48:37" + }, + "nativeSrc": "4070:55:37", + "nodeType": "YulFunctionCall", + "src": "4070:55:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4058:6:37", + "nodeType": "YulIdentifier", + "src": "4058:6:37" + }, + "nativeSrc": "4058:68:37", + "nodeType": "YulFunctionCall", + "src": "4058:68:37" + }, + "nativeSrc": "4058:68:37", + "nodeType": "YulExpressionStatement", + "src": "4058:68:37" + } + ] + }, + "name": "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack", + "nativeSrc": "3965:167:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4036:5:37", + "nodeType": "YulTypedName", + "src": "4036:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4043:3:37", + "nodeType": "YulTypedName", + "src": "4043:3:37", + "type": "" + } + ], + "src": "3965:167:37" + }, + { + "body": { + "nativeSrc": "4338:389:37", + "nodeType": "YulBlock", + "src": "4338:389:37", + "statements": [ + { + "nativeSrc": "4348:27:37", + "nodeType": "YulAssignment", + "src": "4348:27:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4360:9:37", + "nodeType": "YulIdentifier", + "src": "4360:9:37" + }, + { + "kind": "number", + "nativeSrc": "4371:3:37", + "nodeType": "YulLiteral", + "src": "4371:3:37", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4356:3:37", + "nodeType": "YulIdentifier", + "src": "4356:3:37" + }, + "nativeSrc": "4356:19:37", + "nodeType": "YulFunctionCall", + "src": "4356:19:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4348:4:37", + "nodeType": "YulIdentifier", + "src": "4348:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4429:6:37", + "nodeType": "YulIdentifier", + "src": "4429:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4442:9:37", + "nodeType": "YulIdentifier", + "src": "4442:9:37" + }, + { + "kind": "number", + "nativeSrc": "4453:1:37", + "nodeType": "YulLiteral", + "src": "4453:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4438:3:37", + "nodeType": "YulIdentifier", + "src": "4438:3:37" + }, + "nativeSrc": "4438:17:37", + "nodeType": "YulFunctionCall", + "src": "4438:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4385:43:37", + "nodeType": "YulIdentifier", + "src": "4385:43:37" + }, + "nativeSrc": "4385:71:37", + "nodeType": "YulFunctionCall", + "src": "4385:71:37" + }, + "nativeSrc": "4385:71:37", + "nodeType": "YulExpressionStatement", + "src": "4385:71:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "4528:6:37", + "nodeType": "YulIdentifier", + "src": "4528:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4541:9:37", + "nodeType": "YulIdentifier", + "src": "4541:9:37" + }, + { + "kind": "number", + "nativeSrc": "4552:2:37", + "nodeType": "YulLiteral", + "src": "4552:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4537:3:37", + "nodeType": "YulIdentifier", + "src": "4537:3:37" + }, + "nativeSrc": "4537:18:37", + "nodeType": "YulFunctionCall", + "src": "4537:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack", + "nativeSrc": "4466:61:37", + "nodeType": "YulIdentifier", + "src": "4466:61:37" + }, + "nativeSrc": "4466:90:37", + "nodeType": "YulFunctionCall", + "src": "4466:90:37" + }, + "nativeSrc": "4466:90:37", + "nodeType": "YulExpressionStatement", + "src": "4466:90:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "4610:6:37", + "nodeType": "YulIdentifier", + "src": "4610:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4623:9:37", + "nodeType": "YulIdentifier", + "src": "4623:9:37" + }, + { + "kind": "number", + "nativeSrc": "4634:2:37", + "nodeType": "YulLiteral", + "src": "4634:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4619:3:37", + "nodeType": "YulIdentifier", + "src": "4619:3:37" + }, + "nativeSrc": "4619:18:37", + "nodeType": "YulFunctionCall", + "src": "4619:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "4566:43:37", + "nodeType": "YulIdentifier", + "src": "4566:43:37" + }, + "nativeSrc": "4566:72:37", + "nodeType": "YulFunctionCall", + "src": "4566:72:37" + }, + "nativeSrc": "4566:72:37", + "nodeType": "YulExpressionStatement", + "src": "4566:72:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "4692:6:37", + "nodeType": "YulIdentifier", + "src": "4692:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4705:9:37", + "nodeType": "YulIdentifier", + "src": "4705:9:37" + }, + { + "kind": "number", + "nativeSrc": "4716:2:37", + "nodeType": "YulLiteral", + "src": "4716:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4701:3:37", + "nodeType": "YulIdentifier", + "src": "4701:3:37" + }, + "nativeSrc": "4701:18:37", + "nodeType": "YulFunctionCall", + "src": "4701:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "4648:43:37", + "nodeType": "YulIdentifier", + "src": "4648:43:37" + }, + "nativeSrc": "4648:72:37", + "nodeType": "YulFunctionCall", + "src": "4648:72:37" + }, + "nativeSrc": "4648:72:37", + "nodeType": "YulExpressionStatement", + "src": "4648:72:37" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_contract$_IVerifier_$7453_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "4138:589:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4286:9:37", + "nodeType": "YulTypedName", + "src": "4286:9:37", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "4298:6:37", + "nodeType": "YulTypedName", + "src": "4298:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4306:6:37", + "nodeType": "YulTypedName", + "src": "4306:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4314:6:37", + "nodeType": "YulTypedName", + "src": "4314:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4322:6:37", + "nodeType": "YulTypedName", + "src": "4322:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4333:4:37", + "nodeType": "YulTypedName", + "src": "4333:4:37", + "type": "" + } + ], + "src": "4138:589:37" + }, + { + "body": { + "nativeSrc": "4814:66:37", + "nodeType": "YulBlock", + "src": "4814:66:37", + "statements": [ + { + "nativeSrc": "4824:50:37", + "nodeType": "YulAssignment", + "src": "4824:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4868:5:37", + "nodeType": "YulIdentifier", + "src": "4868:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "4837:30:37", + "nodeType": "YulIdentifier", + "src": "4837:30:37" + }, + "nativeSrc": "4837:37:37", + "nodeType": "YulFunctionCall", + "src": "4837:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "4824:9:37", + "nodeType": "YulIdentifier", + "src": "4824:9:37" + } + ] + } + ] + }, + "name": "convert_t_contract$_ISciRegistry_$7088_to_t_address", + "nativeSrc": "4733:147:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4794:5:37", + "nodeType": "YulTypedName", + "src": "4794:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4804:9:37", + "nodeType": "YulTypedName", + "src": "4804:9:37", + "type": "" + } + ], + "src": "4733:147:37" + }, + { + "body": { + "nativeSrc": "4972:87:37", + "nodeType": "YulBlock", + "src": "4972:87:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4989:3:37", + "nodeType": "YulIdentifier", + "src": "4989:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5046:5:37", + "nodeType": "YulIdentifier", + "src": "5046:5:37" + } + ], + "functionName": { + "name": "convert_t_contract$_ISciRegistry_$7088_to_t_address", + "nativeSrc": "4994:51:37", + "nodeType": "YulIdentifier", + "src": "4994:51:37" + }, + "nativeSrc": "4994:58:37", + "nodeType": "YulFunctionCall", + "src": "4994:58:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4982:6:37", + "nodeType": "YulIdentifier", + "src": "4982:6:37" + }, + "nativeSrc": "4982:71:37", + "nodeType": "YulFunctionCall", + "src": "4982:71:37" + }, + "nativeSrc": "4982:71:37", + "nodeType": "YulExpressionStatement", + "src": "4982:71:37" + } + ] + }, + "name": "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack", + "nativeSrc": "4886:173:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4960:5:37", + "nodeType": "YulTypedName", + "src": "4960:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4967:3:37", + "nodeType": "YulTypedName", + "src": "4967:3:37", + "type": "" + } + ], + "src": "4886:173:37" + }, + { + "body": { + "nativeSrc": "5184:145:37", + "nodeType": "YulBlock", + "src": "5184:145:37", + "statements": [ + { + "nativeSrc": "5194:26:37", + "nodeType": "YulAssignment", + "src": "5194:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5206:9:37", + "nodeType": "YulIdentifier", + "src": "5206:9:37" + }, + { + "kind": "number", + "nativeSrc": "5217:2:37", + "nodeType": "YulLiteral", + "src": "5217:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5202:3:37", + "nodeType": "YulIdentifier", + "src": "5202:3:37" + }, + "nativeSrc": "5202:18:37", + "nodeType": "YulFunctionCall", + "src": "5202:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5194:4:37", + "nodeType": "YulIdentifier", + "src": "5194:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5295:6:37", + "nodeType": "YulIdentifier", + "src": "5295:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5308:9:37", + "nodeType": "YulIdentifier", + "src": "5308:9:37" + }, + { + "kind": "number", + "nativeSrc": "5319:1:37", + "nodeType": "YulLiteral", + "src": "5319:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5304:3:37", + "nodeType": "YulIdentifier", + "src": "5304:3:37" + }, + "nativeSrc": "5304:17:37", + "nodeType": "YulFunctionCall", + "src": "5304:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack", + "nativeSrc": "5230:64:37", + "nodeType": "YulIdentifier", + "src": "5230:64:37" + }, + "nativeSrc": "5230:92:37", + "nodeType": "YulFunctionCall", + "src": "5230:92:37" + }, + "nativeSrc": "5230:92:37", + "nodeType": "YulExpressionStatement", + "src": "5230:92:37" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed", + "nativeSrc": "5065:264:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5156:9:37", + "nodeType": "YulTypedName", + "src": "5156:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5168:6:37", + "nodeType": "YulTypedName", + "src": "5168:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5179:4:37", + "nodeType": "YulTypedName", + "src": "5179:4:37", + "type": "" + } + ], + "src": "5065:264:37" + }, + { + "body": { + "nativeSrc": "5433:124:37", + "nodeType": "YulBlock", + "src": "5433:124:37", + "statements": [ + { + "nativeSrc": "5443:26:37", + "nodeType": "YulAssignment", + "src": "5443:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5455:9:37", + "nodeType": "YulIdentifier", + "src": "5455:9:37" + }, + { + "kind": "number", + "nativeSrc": "5466:2:37", + "nodeType": "YulLiteral", + "src": "5466:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5451:3:37", + "nodeType": "YulIdentifier", + "src": "5451:3:37" + }, + "nativeSrc": "5451:18:37", + "nodeType": "YulFunctionCall", + "src": "5451:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5443:4:37", + "nodeType": "YulIdentifier", + "src": "5443:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5523:6:37", + "nodeType": "YulIdentifier", + "src": "5523:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5536:9:37", + "nodeType": "YulIdentifier", + "src": "5536:9:37" + }, + { + "kind": "number", + "nativeSrc": "5547:1:37", + "nodeType": "YulLiteral", + "src": "5547:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5532:3:37", + "nodeType": "YulIdentifier", + "src": "5532:3:37" + }, + "nativeSrc": "5532:17:37", + "nodeType": "YulFunctionCall", + "src": "5532:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "5479:43:37", + "nodeType": "YulIdentifier", + "src": "5479:43:37" + }, + "nativeSrc": "5479:71:37", + "nodeType": "YulFunctionCall", + "src": "5479:71:37" + }, + "nativeSrc": "5479:71:37", + "nodeType": "YulExpressionStatement", + "src": "5479:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "5335:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5405:9:37", + "nodeType": "YulTypedName", + "src": "5405:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5417:6:37", + "nodeType": "YulTypedName", + "src": "5417:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5428:4:37", + "nodeType": "YulTypedName", + "src": "5428:4:37", + "type": "" + } + ], + "src": "5335:222:37" + }, + { + "body": { + "nativeSrc": "5652:28:37", + "nodeType": "YulBlock", + "src": "5652:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5669:1:37", + "nodeType": "YulLiteral", + "src": "5669:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5672:1:37", + "nodeType": "YulLiteral", + "src": "5672:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5662:6:37", + "nodeType": "YulIdentifier", + "src": "5662:6:37" + }, + "nativeSrc": "5662:12:37", + "nodeType": "YulFunctionCall", + "src": "5662:12:37" + }, + "nativeSrc": "5662:12:37", + "nodeType": "YulExpressionStatement", + "src": "5662:12:37" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "5563:117:37", + "nodeType": "YulFunctionDefinition", + "src": "5563:117:37" + }, + { + "body": { + "nativeSrc": "5734:54:37", + "nodeType": "YulBlock", + "src": "5734:54:37", + "statements": [ + { + "nativeSrc": "5744:38:37", + "nodeType": "YulAssignment", + "src": "5744:38:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5762:5:37", + "nodeType": "YulIdentifier", + "src": "5762:5:37" + }, + { + "kind": "number", + "nativeSrc": "5769:2:37", + "nodeType": "YulLiteral", + "src": "5769:2:37", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5758:3:37", + "nodeType": "YulIdentifier", + "src": "5758:3:37" + }, + "nativeSrc": "5758:14:37", + "nodeType": "YulFunctionCall", + "src": "5758:14:37" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5778:2:37", + "nodeType": "YulLiteral", + "src": "5778:2:37", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "5774:3:37", + "nodeType": "YulIdentifier", + "src": "5774:3:37" + }, + "nativeSrc": "5774:7:37", + "nodeType": "YulFunctionCall", + "src": "5774:7:37" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5754:3:37", + "nodeType": "YulIdentifier", + "src": "5754:3:37" + }, + "nativeSrc": "5754:28:37", + "nodeType": "YulFunctionCall", + "src": "5754:28:37" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "5744:6:37", + "nodeType": "YulIdentifier", + "src": "5744:6:37" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "5686:102:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5717:5:37", + "nodeType": "YulTypedName", + "src": "5717:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "5727:6:37", + "nodeType": "YulTypedName", + "src": "5727:6:37", + "type": "" + } + ], + "src": "5686:102:37" + }, + { + "body": { + "nativeSrc": "5822:152:37", + "nodeType": "YulBlock", + "src": "5822:152:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5839:1:37", + "nodeType": "YulLiteral", + "src": "5839:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5842:77:37", + "nodeType": "YulLiteral", + "src": "5842:77:37", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5832:6:37", + "nodeType": "YulIdentifier", + "src": "5832:6:37" + }, + "nativeSrc": "5832:88:37", + "nodeType": "YulFunctionCall", + "src": "5832:88:37" + }, + "nativeSrc": "5832:88:37", + "nodeType": "YulExpressionStatement", + "src": "5832:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5936:1:37", + "nodeType": "YulLiteral", + "src": "5936:1:37", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "5939:4:37", + "nodeType": "YulLiteral", + "src": "5939:4:37", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5929:6:37", + "nodeType": "YulIdentifier", + "src": "5929:6:37" + }, + "nativeSrc": "5929:15:37", + "nodeType": "YulFunctionCall", + "src": "5929:15:37" + }, + "nativeSrc": "5929:15:37", + "nodeType": "YulExpressionStatement", + "src": "5929:15:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5960:1:37", + "nodeType": "YulLiteral", + "src": "5960:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5963:4:37", + "nodeType": "YulLiteral", + "src": "5963:4:37", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5953:6:37", + "nodeType": "YulIdentifier", + "src": "5953:6:37" + }, + "nativeSrc": "5953:15:37", + "nodeType": "YulFunctionCall", + "src": "5953:15:37" + }, + "nativeSrc": "5953:15:37", + "nodeType": "YulExpressionStatement", + "src": "5953:15:37" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "5794:180:37", + "nodeType": "YulFunctionDefinition", + "src": "5794:180:37" + }, + { + "body": { + "nativeSrc": "6023:238:37", + "nodeType": "YulBlock", + "src": "6023:238:37", + "statements": [ + { + "nativeSrc": "6033:58:37", + "nodeType": "YulVariableDeclaration", + "src": "6033:58:37", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6055:6:37", + "nodeType": "YulIdentifier", + "src": "6055:6:37" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "6085:4:37", + "nodeType": "YulIdentifier", + "src": "6085:4:37" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "6063:21:37", + "nodeType": "YulIdentifier", + "src": "6063:21:37" + }, + "nativeSrc": "6063:27:37", + "nodeType": "YulFunctionCall", + "src": "6063:27:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6051:3:37", + "nodeType": "YulIdentifier", + "src": "6051:3:37" + }, + "nativeSrc": "6051:40:37", + "nodeType": "YulFunctionCall", + "src": "6051:40:37" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6037:10:37", + "nodeType": "YulTypedName", + "src": "6037:10:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6202:22:37", + "nodeType": "YulBlock", + "src": "6202:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6204:16:37", + "nodeType": "YulIdentifier", + "src": "6204:16:37" + }, + "nativeSrc": "6204:18:37", + "nodeType": "YulFunctionCall", + "src": "6204:18:37" + }, + "nativeSrc": "6204:18:37", + "nodeType": "YulExpressionStatement", + "src": "6204:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6145:10:37", + "nodeType": "YulIdentifier", + "src": "6145:10:37" + }, + { + "kind": "number", + "nativeSrc": "6157:18:37", + "nodeType": "YulLiteral", + "src": "6157:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6142:2:37", + "nodeType": "YulIdentifier", + "src": "6142:2:37" + }, + "nativeSrc": "6142:34:37", + "nodeType": "YulFunctionCall", + "src": "6142:34:37" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6181:10:37", + "nodeType": "YulIdentifier", + "src": "6181:10:37" + }, + { + "name": "memPtr", + "nativeSrc": "6193:6:37", + "nodeType": "YulIdentifier", + "src": "6193:6:37" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6178:2:37", + "nodeType": "YulIdentifier", + "src": "6178:2:37" + }, + "nativeSrc": "6178:22:37", + "nodeType": "YulFunctionCall", + "src": "6178:22:37" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6139:2:37", + "nodeType": "YulIdentifier", + "src": "6139:2:37" + }, + "nativeSrc": "6139:62:37", + "nodeType": "YulFunctionCall", + "src": "6139:62:37" + }, + "nativeSrc": "6136:88:37", + "nodeType": "YulIf", + "src": "6136:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6240:2:37", + "nodeType": "YulLiteral", + "src": "6240:2:37", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6244:10:37", + "nodeType": "YulIdentifier", + "src": "6244:10:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6233:6:37", + "nodeType": "YulIdentifier", + "src": "6233:6:37" + }, + "nativeSrc": "6233:22:37", + "nodeType": "YulFunctionCall", + "src": "6233:22:37" + }, + "nativeSrc": "6233:22:37", + "nodeType": "YulExpressionStatement", + "src": "6233:22:37" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "5980:281:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "6009:6:37", + "nodeType": "YulTypedName", + "src": "6009:6:37", + "type": "" + }, + { + "name": "size", + "nativeSrc": "6017:4:37", + "nodeType": "YulTypedName", + "src": "6017:4:37", + "type": "" + } + ], + "src": "5980:281:37" + }, + { + "body": { + "nativeSrc": "6308:88:37", + "nodeType": "YulBlock", + "src": "6308:88:37", + "statements": [ + { + "nativeSrc": "6318:30:37", + "nodeType": "YulAssignment", + "src": "6318:30:37", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "6328:18:37", + "nodeType": "YulIdentifier", + "src": "6328:18:37" + }, + "nativeSrc": "6328:20:37", + "nodeType": "YulFunctionCall", + "src": "6328:20:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6318:6:37", + "nodeType": "YulIdentifier", + "src": "6318:6:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6377:6:37", + "nodeType": "YulIdentifier", + "src": "6377:6:37" + }, + { + "name": "size", + "nativeSrc": "6385:4:37", + "nodeType": "YulIdentifier", + "src": "6385:4:37" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "6357:19:37", + "nodeType": "YulIdentifier", + "src": "6357:19:37" + }, + "nativeSrc": "6357:33:37", + "nodeType": "YulFunctionCall", + "src": "6357:33:37" + }, + "nativeSrc": "6357:33:37", + "nodeType": "YulExpressionStatement", + "src": "6357:33:37" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "6267:129:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "6292:4:37", + "nodeType": "YulTypedName", + "src": "6292:4:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6301:6:37", + "nodeType": "YulTypedName", + "src": "6301:6:37", + "type": "" + } + ], + "src": "6267:129:37" + }, + { + "body": { + "nativeSrc": "6484:229:37", + "nodeType": "YulBlock", + "src": "6484:229:37", + "statements": [ + { + "body": { + "nativeSrc": "6589:22:37", + "nodeType": "YulBlock", + "src": "6589:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6591:16:37", + "nodeType": "YulIdentifier", + "src": "6591:16:37" + }, + "nativeSrc": "6591:18:37", + "nodeType": "YulFunctionCall", + "src": "6591:18:37" + }, + "nativeSrc": "6591:18:37", + "nodeType": "YulExpressionStatement", + "src": "6591:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6561:6:37", + "nodeType": "YulIdentifier", + "src": "6561:6:37" + }, + { + "kind": "number", + "nativeSrc": "6569:18:37", + "nodeType": "YulLiteral", + "src": "6569:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6558:2:37", + "nodeType": "YulIdentifier", + "src": "6558:2:37" + }, + "nativeSrc": "6558:30:37", + "nodeType": "YulFunctionCall", + "src": "6558:30:37" + }, + "nativeSrc": "6555:56:37", + "nodeType": "YulIf", + "src": "6555:56:37" + }, + { + "nativeSrc": "6621:25:37", + "nodeType": "YulAssignment", + "src": "6621:25:37", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6633:6:37", + "nodeType": "YulIdentifier", + "src": "6633:6:37" + }, + { + "kind": "number", + "nativeSrc": "6641:4:37", + "nodeType": "YulLiteral", + "src": "6641:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6629:3:37", + "nodeType": "YulIdentifier", + "src": "6629:3:37" + }, + "nativeSrc": "6629:17:37", + "nodeType": "YulFunctionCall", + "src": "6629:17:37" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "6621:4:37", + "nodeType": "YulIdentifier", + "src": "6621:4:37" + } + ] + }, + { + "nativeSrc": "6683:23:37", + "nodeType": "YulAssignment", + "src": "6683:23:37", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "6695:4:37", + "nodeType": "YulIdentifier", + "src": "6695:4:37" + }, + { + "kind": "number", + "nativeSrc": "6701:4:37", + "nodeType": "YulLiteral", + "src": "6701:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6691:3:37", + "nodeType": "YulIdentifier", + "src": "6691:3:37" + }, + "nativeSrc": "6691:15:37", + "nodeType": "YulFunctionCall", + "src": "6691:15:37" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "6683:4:37", + "nodeType": "YulIdentifier", + "src": "6683:4:37" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr", + "nativeSrc": "6402:311:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "6468:6:37", + "nodeType": "YulTypedName", + "src": "6468:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "6479:4:37", + "nodeType": "YulTypedName", + "src": "6479:4:37", + "type": "" + } + ], + "src": "6402:311:37" + }, + { + "body": { + "nativeSrc": "6808:28:37", + "nodeType": "YulBlock", + "src": "6808:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6825:1:37", + "nodeType": "YulLiteral", + "src": "6825:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6828:1:37", + "nodeType": "YulLiteral", + "src": "6828:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6818:6:37", + "nodeType": "YulIdentifier", + "src": "6818:6:37" + }, + "nativeSrc": "6818:12:37", + "nodeType": "YulFunctionCall", + "src": "6818:12:37" + }, + "nativeSrc": "6818:12:37", + "nodeType": "YulExpressionStatement", + "src": "6818:12:37" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "6719:117:37", + "nodeType": "YulFunctionDefinition", + "src": "6719:117:37" + }, + { + "body": { + "nativeSrc": "6961:608:37", + "nodeType": "YulBlock", + "src": "6961:608:37", + "statements": [ + { + "nativeSrc": "6971:90:37", + "nodeType": "YulAssignment", + "src": "6971:90:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7053:6:37", + "nodeType": "YulIdentifier", + "src": "7053:6:37" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr", + "nativeSrc": "6996:56:37", + "nodeType": "YulIdentifier", + "src": "6996:56:37" + }, + "nativeSrc": "6996:64:37", + "nodeType": "YulFunctionCall", + "src": "6996:64:37" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "6980:15:37", + "nodeType": "YulIdentifier", + "src": "6980:15:37" + }, + "nativeSrc": "6980:81:37", + "nodeType": "YulFunctionCall", + "src": "6980:81:37" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "6971:5:37", + "nodeType": "YulIdentifier", + "src": "6971:5:37" + } + ] + }, + { + "nativeSrc": "7070:16:37", + "nodeType": "YulVariableDeclaration", + "src": "7070:16:37", + "value": { + "name": "array", + "nativeSrc": "7081:5:37", + "nodeType": "YulIdentifier", + "src": "7081:5:37" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "7074:3:37", + "nodeType": "YulTypedName", + "src": "7074:3:37", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7103:5:37", + "nodeType": "YulIdentifier", + "src": "7103:5:37" + }, + { + "name": "length", + "nativeSrc": "7110:6:37", + "nodeType": "YulIdentifier", + "src": "7110:6:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7096:6:37", + "nodeType": "YulIdentifier", + "src": "7096:6:37" + }, + "nativeSrc": "7096:21:37", + "nodeType": "YulFunctionCall", + "src": "7096:21:37" + }, + "nativeSrc": "7096:21:37", + "nodeType": "YulExpressionStatement", + "src": "7096:21:37" + }, + { + "nativeSrc": "7126:23:37", + "nodeType": "YulAssignment", + "src": "7126:23:37", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7137:5:37", + "nodeType": "YulIdentifier", + "src": "7137:5:37" + }, + { + "kind": "number", + "nativeSrc": "7144:4:37", + "nodeType": "YulLiteral", + "src": "7144:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7133:3:37", + "nodeType": "YulIdentifier", + "src": "7133:3:37" + }, + "nativeSrc": "7133:16:37", + "nodeType": "YulFunctionCall", + "src": "7133:16:37" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "7126:3:37", + "nodeType": "YulIdentifier", + "src": "7126:3:37" + } + ] + }, + { + "nativeSrc": "7159:44:37", + "nodeType": "YulVariableDeclaration", + "src": "7159:44:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7177:6:37", + "nodeType": "YulIdentifier", + "src": "7177:6:37" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7189:6:37", + "nodeType": "YulIdentifier", + "src": "7189:6:37" + }, + { + "kind": "number", + "nativeSrc": "7197:4:37", + "nodeType": "YulLiteral", + "src": "7197:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7185:3:37", + "nodeType": "YulIdentifier", + "src": "7185:3:37" + }, + "nativeSrc": "7185:17:37", + "nodeType": "YulFunctionCall", + "src": "7185:17:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7173:3:37", + "nodeType": "YulIdentifier", + "src": "7173:3:37" + }, + "nativeSrc": "7173:30:37", + "nodeType": "YulFunctionCall", + "src": "7173:30:37" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "7163:6:37", + "nodeType": "YulTypedName", + "src": "7163:6:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7231:103:37", + "nodeType": "YulBlock", + "src": "7231:103:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "7245:77:37", + "nodeType": "YulIdentifier", + "src": "7245:77:37" + }, + "nativeSrc": "7245:79:37", + "nodeType": "YulFunctionCall", + "src": "7245:79:37" + }, + "nativeSrc": "7245:79:37", + "nodeType": "YulExpressionStatement", + "src": "7245:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "7218:6:37", + "nodeType": "YulIdentifier", + "src": "7218:6:37" + }, + { + "name": "end", + "nativeSrc": "7226:3:37", + "nodeType": "YulIdentifier", + "src": "7226:3:37" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7215:2:37", + "nodeType": "YulIdentifier", + "src": "7215:2:37" + }, + "nativeSrc": "7215:15:37", + "nodeType": "YulFunctionCall", + "src": "7215:15:37" + }, + "nativeSrc": "7212:122:37", + "nodeType": "YulIf", + "src": "7212:122:37" + }, + { + "body": { + "nativeSrc": "7419:144:37", + "nodeType": "YulBlock", + "src": "7419:144:37", + "statements": [ + { + "nativeSrc": "7434:21:37", + "nodeType": "YulVariableDeclaration", + "src": "7434:21:37", + "value": { + "name": "src", + "nativeSrc": "7452:3:37", + "nodeType": "YulIdentifier", + "src": "7452:3:37" + }, + "variables": [ + { + "name": "elementPos", + "nativeSrc": "7438:10:37", + "nodeType": "YulTypedName", + "src": "7438:10:37", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7476:3:37", + "nodeType": "YulIdentifier", + "src": "7476:3:37" + }, + { + "arguments": [ + { + "name": "elementPos", + "nativeSrc": "7502:10:37", + "nodeType": "YulIdentifier", + "src": "7502:10:37" + }, + { + "name": "end", + "nativeSrc": "7514:3:37", + "nodeType": "YulIdentifier", + "src": "7514:3:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "7481:20:37", + "nodeType": "YulIdentifier", + "src": "7481:20:37" + }, + "nativeSrc": "7481:37:37", + "nodeType": "YulFunctionCall", + "src": "7481:37:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7469:6:37", + "nodeType": "YulIdentifier", + "src": "7469:6:37" + }, + "nativeSrc": "7469:50:37", + "nodeType": "YulFunctionCall", + "src": "7469:50:37" + }, + "nativeSrc": "7469:50:37", + "nodeType": "YulExpressionStatement", + "src": "7469:50:37" + }, + { + "nativeSrc": "7532:21:37", + "nodeType": "YulAssignment", + "src": "7532:21:37", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7543:3:37", + "nodeType": "YulIdentifier", + "src": "7543:3:37" + }, + { + "kind": "number", + "nativeSrc": "7548:4:37", + "nodeType": "YulLiteral", + "src": "7548:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7539:3:37", + "nodeType": "YulIdentifier", + "src": "7539:3:37" + }, + "nativeSrc": "7539:14:37", + "nodeType": "YulFunctionCall", + "src": "7539:14:37" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "7532:3:37", + "nodeType": "YulIdentifier", + "src": "7532:3:37" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7372:3:37", + "nodeType": "YulIdentifier", + "src": "7372:3:37" + }, + { + "name": "srcEnd", + "nativeSrc": "7377:6:37", + "nodeType": "YulIdentifier", + "src": "7377:6:37" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7369:2:37", + "nodeType": "YulIdentifier", + "src": "7369:2:37" + }, + "nativeSrc": "7369:15:37", + "nodeType": "YulFunctionCall", + "src": "7369:15:37" + }, + "nativeSrc": "7343:220:37", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7385:25:37", + "nodeType": "YulBlock", + "src": "7385:25:37", + "statements": [ + { + "nativeSrc": "7387:21:37", + "nodeType": "YulAssignment", + "src": "7387:21:37", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7398:3:37", + "nodeType": "YulIdentifier", + "src": "7398:3:37" + }, + { + "kind": "number", + "nativeSrc": "7403:4:37", + "nodeType": "YulLiteral", + "src": "7403:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7394:3:37", + "nodeType": "YulIdentifier", + "src": "7394:3:37" + }, + "nativeSrc": "7394:14:37", + "nodeType": "YulFunctionCall", + "src": "7394:14:37" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "7387:3:37", + "nodeType": "YulIdentifier", + "src": "7387:3:37" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7347:21:37", + "nodeType": "YulBlock", + "src": "7347:21:37", + "statements": [ + { + "nativeSrc": "7349:17:37", + "nodeType": "YulVariableDeclaration", + "src": "7349:17:37", + "value": { + "name": "offset", + "nativeSrc": "7360:6:37", + "nodeType": "YulIdentifier", + "src": "7360:6:37" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "7353:3:37", + "nodeType": "YulTypedName", + "src": "7353:3:37", + "type": "" + } + ] + } + ] + }, + "src": "7343:220:37" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr", + "nativeSrc": "6859:710:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "6931:6:37", + "nodeType": "YulTypedName", + "src": "6931:6:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "6939:6:37", + "nodeType": "YulTypedName", + "src": "6939:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "6947:3:37", + "nodeType": "YulTypedName", + "src": "6947:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "6955:5:37", + "nodeType": "YulTypedName", + "src": "6955:5:37", + "type": "" + } + ], + "src": "6859:710:37" + }, + { + "body": { + "nativeSrc": "7669:293:37", + "nodeType": "YulBlock", + "src": "7669:293:37", + "statements": [ + { + "body": { + "nativeSrc": "7718:83:37", + "nodeType": "YulBlock", + "src": "7718:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "7720:77:37", + "nodeType": "YulIdentifier", + "src": "7720:77:37" + }, + "nativeSrc": "7720:79:37", + "nodeType": "YulFunctionCall", + "src": "7720:79:37" + }, + "nativeSrc": "7720:79:37", + "nodeType": "YulExpressionStatement", + "src": "7720:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7697:6:37", + "nodeType": "YulIdentifier", + "src": "7697:6:37" + }, + { + "kind": "number", + "nativeSrc": "7705:4:37", + "nodeType": "YulLiteral", + "src": "7705:4:37", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7693:3:37", + "nodeType": "YulIdentifier", + "src": "7693:3:37" + }, + "nativeSrc": "7693:17:37", + "nodeType": "YulFunctionCall", + "src": "7693:17:37" + }, + { + "name": "end", + "nativeSrc": "7712:3:37", + "nodeType": "YulIdentifier", + "src": "7712:3:37" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7689:3:37", + "nodeType": "YulIdentifier", + "src": "7689:3:37" + }, + "nativeSrc": "7689:27:37", + "nodeType": "YulFunctionCall", + "src": "7689:27:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7682:6:37", + "nodeType": "YulIdentifier", + "src": "7682:6:37" + }, + "nativeSrc": "7682:35:37", + "nodeType": "YulFunctionCall", + "src": "7682:35:37" + }, + "nativeSrc": "7679:122:37", + "nodeType": "YulIf", + "src": "7679:122:37" + }, + { + "nativeSrc": "7810:34:37", + "nodeType": "YulVariableDeclaration", + "src": "7810:34:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7837:6:37", + "nodeType": "YulIdentifier", + "src": "7837:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7824:12:37", + "nodeType": "YulIdentifier", + "src": "7824:12:37" + }, + "nativeSrc": "7824:20:37", + "nodeType": "YulFunctionCall", + "src": "7824:20:37" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "7814:6:37", + "nodeType": "YulTypedName", + "src": "7814:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "7853:103:37", + "nodeType": "YulAssignment", + "src": "7853:103:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7929:6:37", + "nodeType": "YulIdentifier", + "src": "7929:6:37" + }, + { + "kind": "number", + "nativeSrc": "7937:4:37", + "nodeType": "YulLiteral", + "src": "7937:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7925:3:37", + "nodeType": "YulIdentifier", + "src": "7925:3:37" + }, + "nativeSrc": "7925:17:37", + "nodeType": "YulFunctionCall", + "src": "7925:17:37" + }, + { + "name": "length", + "nativeSrc": "7944:6:37", + "nodeType": "YulIdentifier", + "src": "7944:6:37" + }, + { + "name": "end", + "nativeSrc": "7952:3:37", + "nodeType": "YulIdentifier", + "src": "7952:3:37" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr", + "nativeSrc": "7862:62:37", + "nodeType": "YulIdentifier", + "src": "7862:62:37" + }, + "nativeSrc": "7862:94:37", + "nodeType": "YulFunctionCall", + "src": "7862:94:37" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "7853:5:37", + "nodeType": "YulIdentifier", + "src": "7853:5:37" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr", + "nativeSrc": "7592:370:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "7647:6:37", + "nodeType": "YulTypedName", + "src": "7647:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7655:3:37", + "nodeType": "YulTypedName", + "src": "7655:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7663:5:37", + "nodeType": "YulTypedName", + "src": "7663:5:37", + "type": "" + } + ], + "src": "7592:370:37" + }, + { + "body": { + "nativeSrc": "8093:704:37", + "nodeType": "YulBlock", + "src": "8093:704:37", + "statements": [ + { + "body": { + "nativeSrc": "8139:83:37", + "nodeType": "YulBlock", + "src": "8139:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "8141:77:37", + "nodeType": "YulIdentifier", + "src": "8141:77:37" + }, + "nativeSrc": "8141:79:37", + "nodeType": "YulFunctionCall", + "src": "8141:79:37" + }, + "nativeSrc": "8141:79:37", + "nodeType": "YulExpressionStatement", + "src": "8141:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8114:7:37", + "nodeType": "YulIdentifier", + "src": "8114:7:37" + }, + { + "name": "headStart", + "nativeSrc": "8123:9:37", + "nodeType": "YulIdentifier", + "src": "8123:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8110:3:37", + "nodeType": "YulIdentifier", + "src": "8110:3:37" + }, + "nativeSrc": "8110:23:37", + "nodeType": "YulFunctionCall", + "src": "8110:23:37" + }, + { + "kind": "number", + "nativeSrc": "8135:2:37", + "nodeType": "YulLiteral", + "src": "8135:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8106:3:37", + "nodeType": "YulIdentifier", + "src": "8106:3:37" + }, + "nativeSrc": "8106:32:37", + "nodeType": "YulFunctionCall", + "src": "8106:32:37" + }, + "nativeSrc": "8103:119:37", + "nodeType": "YulIf", + "src": "8103:119:37" + }, + { + "nativeSrc": "8232:302:37", + "nodeType": "YulBlock", + "src": "8232:302:37", + "statements": [ + { + "nativeSrc": "8247:45:37", + "nodeType": "YulVariableDeclaration", + "src": "8247:45:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8278:9:37", + "nodeType": "YulIdentifier", + "src": "8278:9:37" + }, + { + "kind": "number", + "nativeSrc": "8289:1:37", + "nodeType": "YulLiteral", + "src": "8289:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8274:3:37", + "nodeType": "YulIdentifier", + "src": "8274:3:37" + }, + "nativeSrc": "8274:17:37", + "nodeType": "YulFunctionCall", + "src": "8274:17:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8261:12:37", + "nodeType": "YulIdentifier", + "src": "8261:12:37" + }, + "nativeSrc": "8261:31:37", + "nodeType": "YulFunctionCall", + "src": "8261:31:37" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8251:6:37", + "nodeType": "YulTypedName", + "src": "8251:6:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8339:83:37", + "nodeType": "YulBlock", + "src": "8339:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "8341:77:37", + "nodeType": "YulIdentifier", + "src": "8341:77:37" + }, + "nativeSrc": "8341:79:37", + "nodeType": "YulFunctionCall", + "src": "8341:79:37" + }, + "nativeSrc": "8341:79:37", + "nodeType": "YulExpressionStatement", + "src": "8341:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8311:6:37", + "nodeType": "YulIdentifier", + "src": "8311:6:37" + }, + { + "kind": "number", + "nativeSrc": "8319:18:37", + "nodeType": "YulLiteral", + "src": "8319:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8308:2:37", + "nodeType": "YulIdentifier", + "src": "8308:2:37" + }, + "nativeSrc": "8308:30:37", + "nodeType": "YulFunctionCall", + "src": "8308:30:37" + }, + "nativeSrc": "8305:117:37", + "nodeType": "YulIf", + "src": "8305:117:37" + }, + { + "nativeSrc": "8436:88:37", + "nodeType": "YulAssignment", + "src": "8436:88:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8496:9:37", + "nodeType": "YulIdentifier", + "src": "8496:9:37" + }, + { + "name": "offset", + "nativeSrc": "8507:6:37", + "nodeType": "YulIdentifier", + "src": "8507:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8492:3:37", + "nodeType": "YulIdentifier", + "src": "8492:3:37" + }, + "nativeSrc": "8492:22:37", + "nodeType": "YulFunctionCall", + "src": "8492:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "8516:7:37", + "nodeType": "YulIdentifier", + "src": "8516:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr", + "nativeSrc": "8446:45:37", + "nodeType": "YulIdentifier", + "src": "8446:45:37" + }, + "nativeSrc": "8446:78:37", + "nodeType": "YulFunctionCall", + "src": "8446:78:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8436:6:37", + "nodeType": "YulIdentifier", + "src": "8436:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "8544:118:37", + "nodeType": "YulBlock", + "src": "8544:118:37", + "statements": [ + { + "nativeSrc": "8559:16:37", + "nodeType": "YulVariableDeclaration", + "src": "8559:16:37", + "value": { + "kind": "number", + "nativeSrc": "8573:2:37", + "nodeType": "YulLiteral", + "src": "8573:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8563:6:37", + "nodeType": "YulTypedName", + "src": "8563:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "8589:63:37", + "nodeType": "YulAssignment", + "src": "8589:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8624:9:37", + "nodeType": "YulIdentifier", + "src": "8624:9:37" + }, + { + "name": "offset", + "nativeSrc": "8635:6:37", + "nodeType": "YulIdentifier", + "src": "8635:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8620:3:37", + "nodeType": "YulIdentifier", + "src": "8620:3:37" + }, + "nativeSrc": "8620:22:37", + "nodeType": "YulFunctionCall", + "src": "8620:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "8644:7:37", + "nodeType": "YulIdentifier", + "src": "8644:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "8599:20:37", + "nodeType": "YulIdentifier", + "src": "8599:20:37" + }, + "nativeSrc": "8599:53:37", + "nodeType": "YulFunctionCall", + "src": "8599:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "8589:6:37", + "nodeType": "YulIdentifier", + "src": "8589:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "8672:118:37", + "nodeType": "YulBlock", + "src": "8672:118:37", + "statements": [ + { + "nativeSrc": "8687:16:37", + "nodeType": "YulVariableDeclaration", + "src": "8687:16:37", + "value": { + "kind": "number", + "nativeSrc": "8701:2:37", + "nodeType": "YulLiteral", + "src": "8701:2:37", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8691:6:37", + "nodeType": "YulTypedName", + "src": "8691:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "8717:63:37", + "nodeType": "YulAssignment", + "src": "8717:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8752:9:37", + "nodeType": "YulIdentifier", + "src": "8752:9:37" + }, + { + "name": "offset", + "nativeSrc": "8763:6:37", + "nodeType": "YulIdentifier", + "src": "8763:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8748:3:37", + "nodeType": "YulIdentifier", + "src": "8748:3:37" + }, + "nativeSrc": "8748:22:37", + "nodeType": "YulFunctionCall", + "src": "8748:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "8772:7:37", + "nodeType": "YulIdentifier", + "src": "8772:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "8727:20:37", + "nodeType": "YulIdentifier", + "src": "8727:20:37" + }, + "nativeSrc": "8727:53:37", + "nodeType": "YulFunctionCall", + "src": "8727:53:37" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "8717:6:37", + "nodeType": "YulIdentifier", + "src": "8717:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptrt_addresst_uint256", + "nativeSrc": "7968:829:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8047:9:37", + "nodeType": "YulTypedName", + "src": "8047:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8058:7:37", + "nodeType": "YulTypedName", + "src": "8058:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8070:6:37", + "nodeType": "YulTypedName", + "src": "8070:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8078:6:37", + "nodeType": "YulTypedName", + "src": "8078:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "8086:6:37", + "nodeType": "YulTypedName", + "src": "8086:6:37", + "type": "" + } + ], + "src": "7968:829:37" + }, + { + "body": { + "nativeSrc": "8877:40:37", + "nodeType": "YulBlock", + "src": "8877:40:37", + "statements": [ + { + "nativeSrc": "8888:22:37", + "nodeType": "YulAssignment", + "src": "8888:22:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8904:5:37", + "nodeType": "YulIdentifier", + "src": "8904:5:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8898:5:37", + "nodeType": "YulIdentifier", + "src": "8898:5:37" + }, + "nativeSrc": "8898:12:37", + "nodeType": "YulFunctionCall", + "src": "8898:12:37" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "8888:6:37", + "nodeType": "YulIdentifier", + "src": "8888:6:37" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "8803:114:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8860:5:37", + "nodeType": "YulTypedName", + "src": "8860:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "8870:6:37", + "nodeType": "YulTypedName", + "src": "8870:6:37", + "type": "" + } + ], + "src": "8803:114:37" + }, + { + "body": { + "nativeSrc": "9034:73:37", + "nodeType": "YulBlock", + "src": "9034:73:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9051:3:37", + "nodeType": "YulIdentifier", + "src": "9051:3:37" + }, + { + "name": "length", + "nativeSrc": "9056:6:37", + "nodeType": "YulIdentifier", + "src": "9056:6:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9044:6:37", + "nodeType": "YulIdentifier", + "src": "9044:6:37" + }, + "nativeSrc": "9044:19:37", + "nodeType": "YulFunctionCall", + "src": "9044:19:37" + }, + "nativeSrc": "9044:19:37", + "nodeType": "YulExpressionStatement", + "src": "9044:19:37" + }, + { + "nativeSrc": "9072:29:37", + "nodeType": "YulAssignment", + "src": "9072:29:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9091:3:37", + "nodeType": "YulIdentifier", + "src": "9091:3:37" + }, + { + "kind": "number", + "nativeSrc": "9096:4:37", + "nodeType": "YulLiteral", + "src": "9096:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9087:3:37", + "nodeType": "YulIdentifier", + "src": "9087:3:37" + }, + "nativeSrc": "9087:14:37", + "nodeType": "YulFunctionCall", + "src": "9087:14:37" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "9072:11:37", + "nodeType": "YulIdentifier", + "src": "9072:11:37" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "8923:184:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "9006:3:37", + "nodeType": "YulTypedName", + "src": "9006:3:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "9011:6:37", + "nodeType": "YulTypedName", + "src": "9011:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "9022:11:37", + "nodeType": "YulTypedName", + "src": "9022:11:37", + "type": "" + } + ], + "src": "8923:184:37" + }, + { + "body": { + "nativeSrc": "9185:60:37", + "nodeType": "YulBlock", + "src": "9185:60:37", + "statements": [ + { + "nativeSrc": "9195:11:37", + "nodeType": "YulAssignment", + "src": "9195:11:37", + "value": { + "name": "ptr", + "nativeSrc": "9203:3:37", + "nodeType": "YulIdentifier", + "src": "9203:3:37" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "9195:4:37", + "nodeType": "YulIdentifier", + "src": "9195:4:37" + } + ] + }, + { + "nativeSrc": "9216:22:37", + "nodeType": "YulAssignment", + "src": "9216:22:37", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "9228:3:37", + "nodeType": "YulIdentifier", + "src": "9228:3:37" + }, + { + "kind": "number", + "nativeSrc": "9233:4:37", + "nodeType": "YulLiteral", + "src": "9233:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9224:3:37", + "nodeType": "YulIdentifier", + "src": "9224:3:37" + }, + "nativeSrc": "9224:14:37", + "nodeType": "YulFunctionCall", + "src": "9224:14:37" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "9216:4:37", + "nodeType": "YulIdentifier", + "src": "9216:4:37" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "9113:132:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "9172:3:37", + "nodeType": "YulTypedName", + "src": "9172:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "9180:4:37", + "nodeType": "YulTypedName", + "src": "9180:4:37", + "type": "" + } + ], + "src": "9113:132:37" + }, + { + "body": { + "nativeSrc": "9306:53:37", + "nodeType": "YulBlock", + "src": "9306:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9323:3:37", + "nodeType": "YulIdentifier", + "src": "9323:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "9346:5:37", + "nodeType": "YulIdentifier", + "src": "9346:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "9328:17:37", + "nodeType": "YulIdentifier", + "src": "9328:17:37" + }, + "nativeSrc": "9328:24:37", + "nodeType": "YulFunctionCall", + "src": "9328:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9316:6:37", + "nodeType": "YulIdentifier", + "src": "9316:6:37" + }, + "nativeSrc": "9316:37:37", + "nodeType": "YulFunctionCall", + "src": "9316:37:37" + }, + "nativeSrc": "9316:37:37", + "nodeType": "YulExpressionStatement", + "src": "9316:37:37" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "9251:108:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "9294:5:37", + "nodeType": "YulTypedName", + "src": "9294:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "9301:3:37", + "nodeType": "YulTypedName", + "src": "9301:3:37", + "type": "" + } + ], + "src": "9251:108:37" + }, + { + "body": { + "nativeSrc": "9445:99:37", + "nodeType": "YulBlock", + "src": "9445:99:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "9489:6:37", + "nodeType": "YulIdentifier", + "src": "9489:6:37" + }, + { + "name": "pos", + "nativeSrc": "9497:3:37", + "nodeType": "YulIdentifier", + "src": "9497:3:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "9455:33:37", + "nodeType": "YulIdentifier", + "src": "9455:33:37" + }, + "nativeSrc": "9455:46:37", + "nodeType": "YulFunctionCall", + "src": "9455:46:37" + }, + "nativeSrc": "9455:46:37", + "nodeType": "YulExpressionStatement", + "src": "9455:46:37" + }, + { + "nativeSrc": "9510:28:37", + "nodeType": "YulAssignment", + "src": "9510:28:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9528:3:37", + "nodeType": "YulIdentifier", + "src": "9528:3:37" + }, + { + "kind": "number", + "nativeSrc": "9533:4:37", + "nodeType": "YulLiteral", + "src": "9533:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9524:3:37", + "nodeType": "YulIdentifier", + "src": "9524:3:37" + }, + "nativeSrc": "9524:14:37", + "nodeType": "YulFunctionCall", + "src": "9524:14:37" + }, + "variableNames": [ + { + "name": "updatedPos", + "nativeSrc": "9510:10:37", + "nodeType": "YulIdentifier", + "src": "9510:10:37" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nativeSrc": "9365:179:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nativeSrc": "9418:6:37", + "nodeType": "YulTypedName", + "src": "9418:6:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "9426:3:37", + "nodeType": "YulTypedName", + "src": "9426:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nativeSrc": "9434:10:37", + "nodeType": "YulTypedName", + "src": "9434:10:37", + "type": "" + } + ], + "src": "9365:179:37" + }, + { + "body": { + "nativeSrc": "9625:38:37", + "nodeType": "YulBlock", + "src": "9625:38:37", + "statements": [ + { + "nativeSrc": "9635:22:37", + "nodeType": "YulAssignment", + "src": "9635:22:37", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "9647:3:37", + "nodeType": "YulIdentifier", + "src": "9647:3:37" + }, + { + "kind": "number", + "nativeSrc": "9652:4:37", + "nodeType": "YulLiteral", + "src": "9652:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9643:3:37", + "nodeType": "YulIdentifier", + "src": "9643:3:37" + }, + "nativeSrc": "9643:14:37", + "nodeType": "YulFunctionCall", + "src": "9643:14:37" + }, + "variableNames": [ + { + "name": "next", + "nativeSrc": "9635:4:37", + "nodeType": "YulIdentifier", + "src": "9635:4:37" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "9550:113:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "9612:3:37", + "nodeType": "YulTypedName", + "src": "9612:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nativeSrc": "9620:4:37", + "nodeType": "YulTypedName", + "src": "9620:4:37", + "type": "" + } + ], + "src": "9550:113:37" + }, + { + "body": { + "nativeSrc": "9823:608:37", + "nodeType": "YulBlock", + "src": "9823:608:37", + "statements": [ + { + "nativeSrc": "9833:68:37", + "nodeType": "YulVariableDeclaration", + "src": "9833:68:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "9895:5:37", + "nodeType": "YulIdentifier", + "src": "9895:5:37" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "9847:47:37", + "nodeType": "YulIdentifier", + "src": "9847:47:37" + }, + "nativeSrc": "9847:54:37", + "nodeType": "YulFunctionCall", + "src": "9847:54:37" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "9837:6:37", + "nodeType": "YulTypedName", + "src": "9837:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "9910:93:37", + "nodeType": "YulAssignment", + "src": "9910:93:37", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9991:3:37", + "nodeType": "YulIdentifier", + "src": "9991:3:37" + }, + { + "name": "length", + "nativeSrc": "9996:6:37", + "nodeType": "YulIdentifier", + "src": "9996:6:37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "9917:73:37", + "nodeType": "YulIdentifier", + "src": "9917:73:37" + }, + "nativeSrc": "9917:86:37", + "nodeType": "YulFunctionCall", + "src": "9917:86:37" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "9910:3:37", + "nodeType": "YulIdentifier", + "src": "9910:3:37" + } + ] + }, + { + "nativeSrc": "10012:71:37", + "nodeType": "YulVariableDeclaration", + "src": "10012:71:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "10077:5:37", + "nodeType": "YulIdentifier", + "src": "10077:5:37" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "10027:49:37", + "nodeType": "YulIdentifier", + "src": "10027:49:37" + }, + "nativeSrc": "10027:56:37", + "nodeType": "YulFunctionCall", + "src": "10027:56:37" + }, + "variables": [ + { + "name": "baseRef", + "nativeSrc": "10016:7:37", + "nodeType": "YulTypedName", + "src": "10016:7:37", + "type": "" + } + ] + }, + { + "nativeSrc": "10092:21:37", + "nodeType": "YulVariableDeclaration", + "src": "10092:21:37", + "value": { + "name": "baseRef", + "nativeSrc": "10106:7:37", + "nodeType": "YulIdentifier", + "src": "10106:7:37" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "10096:6:37", + "nodeType": "YulTypedName", + "src": "10096:6:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10182:224:37", + "nodeType": "YulBlock", + "src": "10182:224:37", + "statements": [ + { + "nativeSrc": "10196:34:37", + "nodeType": "YulVariableDeclaration", + "src": "10196:34:37", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "10223:6:37", + "nodeType": "YulIdentifier", + "src": "10223:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "10217:5:37", + "nodeType": "YulIdentifier", + "src": "10217:5:37" + }, + "nativeSrc": "10217:13:37", + "nodeType": "YulFunctionCall", + "src": "10217:13:37" + }, + "variables": [ + { + "name": "elementValue0", + "nativeSrc": "10200:13:37", + "nodeType": "YulTypedName", + "src": "10200:13:37", + "type": "" + } + ] + }, + { + "nativeSrc": "10243:70:37", + "nodeType": "YulAssignment", + "src": "10243:70:37", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nativeSrc": "10294:13:37", + "nodeType": "YulIdentifier", + "src": "10294:13:37" + }, + { + "name": "pos", + "nativeSrc": "10309:3:37", + "nodeType": "YulIdentifier", + "src": "10309:3:37" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nativeSrc": "10250:43:37", + "nodeType": "YulIdentifier", + "src": "10250:43:37" + }, + "nativeSrc": "10250:63:37", + "nodeType": "YulFunctionCall", + "src": "10250:63:37" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "10243:3:37", + "nodeType": "YulIdentifier", + "src": "10243:3:37" + } + ] + }, + { + "nativeSrc": "10326:70:37", + "nodeType": "YulAssignment", + "src": "10326:70:37", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "10389:6:37", + "nodeType": "YulIdentifier", + "src": "10389:6:37" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "10336:52:37", + "nodeType": "YulIdentifier", + "src": "10336:52:37" + }, + "nativeSrc": "10336:60:37", + "nodeType": "YulFunctionCall", + "src": "10336:60:37" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "10326:6:37", + "nodeType": "YulIdentifier", + "src": "10326:6:37" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "10144:1:37", + "nodeType": "YulIdentifier", + "src": "10144:1:37" + }, + { + "name": "length", + "nativeSrc": "10147:6:37", + "nodeType": "YulIdentifier", + "src": "10147:6:37" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "10141:2:37", + "nodeType": "YulIdentifier", + "src": "10141:2:37" + }, + "nativeSrc": "10141:13:37", + "nodeType": "YulFunctionCall", + "src": "10141:13:37" + }, + "nativeSrc": "10122:284:37", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "10155:18:37", + "nodeType": "YulBlock", + "src": "10155:18:37", + "statements": [ + { + "nativeSrc": "10157:14:37", + "nodeType": "YulAssignment", + "src": "10157:14:37", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "10166:1:37", + "nodeType": "YulIdentifier", + "src": "10166:1:37" + }, + { + "kind": "number", + "nativeSrc": "10169:1:37", + "nodeType": "YulLiteral", + "src": "10169:1:37", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10162:3:37", + "nodeType": "YulIdentifier", + "src": "10162:3:37" + }, + "nativeSrc": "10162:9:37", + "nodeType": "YulFunctionCall", + "src": "10162:9:37" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "10157:1:37", + "nodeType": "YulIdentifier", + "src": "10157:1:37" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "10126:14:37", + "nodeType": "YulBlock", + "src": "10126:14:37", + "statements": [ + { + "nativeSrc": "10128:10:37", + "nodeType": "YulVariableDeclaration", + "src": "10128:10:37", + "value": { + "kind": "number", + "nativeSrc": "10137:1:37", + "nodeType": "YulLiteral", + "src": "10137:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "10132:1:37", + "nodeType": "YulTypedName", + "src": "10132:1:37", + "type": "" + } + ] + } + ] + }, + "src": "10122:284:37" + }, + { + "nativeSrc": "10415:10:37", + "nodeType": "YulAssignment", + "src": "10415:10:37", + "value": { + "name": "pos", + "nativeSrc": "10422:3:37", + "nodeType": "YulIdentifier", + "src": "10422:3:37" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "10415:3:37", + "nodeType": "YulIdentifier", + "src": "10415:3:37" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "9699:732:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "9802:5:37", + "nodeType": "YulTypedName", + "src": "9802:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "9809:3:37", + "nodeType": "YulTypedName", + "src": "9809:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "9818:3:37", + "nodeType": "YulTypedName", + "src": "9818:3:37", + "type": "" + } + ], + "src": "9699:732:37" + }, + { + "body": { + "nativeSrc": "10585:225:37", + "nodeType": "YulBlock", + "src": "10585:225:37", + "statements": [ + { + "nativeSrc": "10595:26:37", + "nodeType": "YulAssignment", + "src": "10595:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10607:9:37", + "nodeType": "YulIdentifier", + "src": "10607:9:37" + }, + { + "kind": "number", + "nativeSrc": "10618:2:37", + "nodeType": "YulLiteral", + "src": "10618:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10603:3:37", + "nodeType": "YulIdentifier", + "src": "10603:3:37" + }, + "nativeSrc": "10603:18:37", + "nodeType": "YulFunctionCall", + "src": "10603:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10595:4:37", + "nodeType": "YulIdentifier", + "src": "10595:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10642:9:37", + "nodeType": "YulIdentifier", + "src": "10642:9:37" + }, + { + "kind": "number", + "nativeSrc": "10653:1:37", + "nodeType": "YulLiteral", + "src": "10653:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10638:3:37", + "nodeType": "YulIdentifier", + "src": "10638:3:37" + }, + "nativeSrc": "10638:17:37", + "nodeType": "YulFunctionCall", + "src": "10638:17:37" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "10661:4:37", + "nodeType": "YulIdentifier", + "src": "10661:4:37" + }, + { + "name": "headStart", + "nativeSrc": "10667:9:37", + "nodeType": "YulIdentifier", + "src": "10667:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10657:3:37", + "nodeType": "YulIdentifier", + "src": "10657:3:37" + }, + "nativeSrc": "10657:20:37", + "nodeType": "YulFunctionCall", + "src": "10657:20:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10631:6:37", + "nodeType": "YulIdentifier", + "src": "10631:6:37" + }, + "nativeSrc": "10631:47:37", + "nodeType": "YulFunctionCall", + "src": "10631:47:37" + }, + "nativeSrc": "10631:47:37", + "nodeType": "YulExpressionStatement", + "src": "10631:47:37" + }, + { + "nativeSrc": "10687:116:37", + "nodeType": "YulAssignment", + "src": "10687:116:37", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "10789:6:37", + "nodeType": "YulIdentifier", + "src": "10789:6:37" + }, + { + "name": "tail", + "nativeSrc": "10798:4:37", + "nodeType": "YulIdentifier", + "src": "10798:4:37" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "10695:93:37", + "nodeType": "YulIdentifier", + "src": "10695:93:37" + }, + "nativeSrc": "10695:108:37", + "nodeType": "YulFunctionCall", + "src": "10695:108:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10687:4:37", + "nodeType": "YulIdentifier", + "src": "10687:4:37" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "10437:373:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10557:9:37", + "nodeType": "YulTypedName", + "src": "10557:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "10569:6:37", + "nodeType": "YulTypedName", + "src": "10569:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10580:4:37", + "nodeType": "YulTypedName", + "src": "10580:4:37", + "type": "" + } + ], + "src": "10437:373:37" + }, + { + "body": { + "nativeSrc": "10882:263:37", + "nodeType": "YulBlock", + "src": "10882:263:37", + "statements": [ + { + "body": { + "nativeSrc": "10928:83:37", + "nodeType": "YulBlock", + "src": "10928:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "10930:77:37", + "nodeType": "YulIdentifier", + "src": "10930:77:37" + }, + "nativeSrc": "10930:79:37", + "nodeType": "YulFunctionCall", + "src": "10930:79:37" + }, + "nativeSrc": "10930:79:37", + "nodeType": "YulExpressionStatement", + "src": "10930:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10903:7:37", + "nodeType": "YulIdentifier", + "src": "10903:7:37" + }, + { + "name": "headStart", + "nativeSrc": "10912:9:37", + "nodeType": "YulIdentifier", + "src": "10912:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10899:3:37", + "nodeType": "YulIdentifier", + "src": "10899:3:37" + }, + "nativeSrc": "10899:23:37", + "nodeType": "YulFunctionCall", + "src": "10899:23:37" + }, + { + "kind": "number", + "nativeSrc": "10924:2:37", + "nodeType": "YulLiteral", + "src": "10924:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10895:3:37", + "nodeType": "YulIdentifier", + "src": "10895:3:37" + }, + "nativeSrc": "10895:32:37", + "nodeType": "YulFunctionCall", + "src": "10895:32:37" + }, + "nativeSrc": "10892:119:37", + "nodeType": "YulIf", + "src": "10892:119:37" + }, + { + "nativeSrc": "11021:117:37", + "nodeType": "YulBlock", + "src": "11021:117:37", + "statements": [ + { + "nativeSrc": "11036:15:37", + "nodeType": "YulVariableDeclaration", + "src": "11036:15:37", + "value": { + "kind": "number", + "nativeSrc": "11050:1:37", + "nodeType": "YulLiteral", + "src": "11050:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11040:6:37", + "nodeType": "YulTypedName", + "src": "11040:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "11065:63:37", + "nodeType": "YulAssignment", + "src": "11065:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11100:9:37", + "nodeType": "YulIdentifier", + "src": "11100:9:37" + }, + { + "name": "offset", + "nativeSrc": "11111:6:37", + "nodeType": "YulIdentifier", + "src": "11111:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11096:3:37", + "nodeType": "YulIdentifier", + "src": "11096:3:37" + }, + "nativeSrc": "11096:22:37", + "nodeType": "YulFunctionCall", + "src": "11096:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "11120:7:37", + "nodeType": "YulIdentifier", + "src": "11120:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11075:20:37", + "nodeType": "YulIdentifier", + "src": "11075:20:37" + }, + "nativeSrc": "11075:53:37", + "nodeType": "YulFunctionCall", + "src": "11075:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11065:6:37", + "nodeType": "YulIdentifier", + "src": "11065:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "10816:329:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10852:9:37", + "nodeType": "YulTypedName", + "src": "10852:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10863:7:37", + "nodeType": "YulTypedName", + "src": "10863:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10875:6:37", + "nodeType": "YulTypedName", + "src": "10875:6:37", + "type": "" + } + ], + "src": "10816:329:37" + }, + { + "body": { + "nativeSrc": "11216:53:37", + "nodeType": "YulBlock", + "src": "11216:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11233:3:37", + "nodeType": "YulIdentifier", + "src": "11233:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "11256:5:37", + "nodeType": "YulIdentifier", + "src": "11256:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "11238:17:37", + "nodeType": "YulIdentifier", + "src": "11238:17:37" + }, + "nativeSrc": "11238:24:37", + "nodeType": "YulFunctionCall", + "src": "11238:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11226:6:37", + "nodeType": "YulIdentifier", + "src": "11226:6:37" + }, + "nativeSrc": "11226:37:37", + "nodeType": "YulFunctionCall", + "src": "11226:37:37" + }, + "nativeSrc": "11226:37:37", + "nodeType": "YulExpressionStatement", + "src": "11226:37:37" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "11151:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "11204:5:37", + "nodeType": "YulTypedName", + "src": "11204:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "11211:3:37", + "nodeType": "YulTypedName", + "src": "11211:3:37", + "type": "" + } + ], + "src": "11151:118:37" + }, + { + "body": { + "nativeSrc": "11373:124:37", + "nodeType": "YulBlock", + "src": "11373:124:37", + "statements": [ + { + "nativeSrc": "11383:26:37", + "nodeType": "YulAssignment", + "src": "11383:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11395:9:37", + "nodeType": "YulIdentifier", + "src": "11395:9:37" + }, + { + "kind": "number", + "nativeSrc": "11406:2:37", + "nodeType": "YulLiteral", + "src": "11406:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11391:3:37", + "nodeType": "YulIdentifier", + "src": "11391:3:37" + }, + "nativeSrc": "11391:18:37", + "nodeType": "YulFunctionCall", + "src": "11391:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11383:4:37", + "nodeType": "YulIdentifier", + "src": "11383:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11463:6:37", + "nodeType": "YulIdentifier", + "src": "11463:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11476:9:37", + "nodeType": "YulIdentifier", + "src": "11476:9:37" + }, + { + "kind": "number", + "nativeSrc": "11487:1:37", + "nodeType": "YulLiteral", + "src": "11487:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11472:3:37", + "nodeType": "YulIdentifier", + "src": "11472:3:37" + }, + "nativeSrc": "11472:17:37", + "nodeType": "YulFunctionCall", + "src": "11472:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "11419:43:37", + "nodeType": "YulIdentifier", + "src": "11419:43:37" + }, + "nativeSrc": "11419:71:37", + "nodeType": "YulFunctionCall", + "src": "11419:71:37" + }, + "nativeSrc": "11419:71:37", + "nodeType": "YulExpressionStatement", + "src": "11419:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "11275:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11345:9:37", + "nodeType": "YulTypedName", + "src": "11345:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "11357:6:37", + "nodeType": "YulTypedName", + "src": "11357:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11368:4:37", + "nodeType": "YulTypedName", + "src": "11368:4:37", + "type": "" + } + ], + "src": "11275:222:37" + }, + { + "body": { + "nativeSrc": "11566:80:37", + "nodeType": "YulBlock", + "src": "11566:80:37", + "statements": [ + { + "nativeSrc": "11576:22:37", + "nodeType": "YulAssignment", + "src": "11576:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "11591:6:37", + "nodeType": "YulIdentifier", + "src": "11591:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "11585:5:37", + "nodeType": "YulIdentifier", + "src": "11585:5:37" + }, + "nativeSrc": "11585:13:37", + "nodeType": "YulFunctionCall", + "src": "11585:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "11576:5:37", + "nodeType": "YulIdentifier", + "src": "11576:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "11634:5:37", + "nodeType": "YulIdentifier", + "src": "11634:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "11607:26:37", + "nodeType": "YulIdentifier", + "src": "11607:26:37" + }, + "nativeSrc": "11607:33:37", + "nodeType": "YulFunctionCall", + "src": "11607:33:37" + }, + "nativeSrc": "11607:33:37", + "nodeType": "YulExpressionStatement", + "src": "11607:33:37" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "11503:143:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "11544:6:37", + "nodeType": "YulTypedName", + "src": "11544:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "11552:3:37", + "nodeType": "YulTypedName", + "src": "11552:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "11560:5:37", + "nodeType": "YulTypedName", + "src": "11560:5:37", + "type": "" + } + ], + "src": "11503:143:37" + }, + { + "body": { + "nativeSrc": "11715:51:37", + "nodeType": "YulBlock", + "src": "11715:51:37", + "statements": [ + { + "nativeSrc": "11725:35:37", + "nodeType": "YulAssignment", + "src": "11725:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "11754:5:37", + "nodeType": "YulIdentifier", + "src": "11754:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "11736:17:37", + "nodeType": "YulIdentifier", + "src": "11736:17:37" + }, + "nativeSrc": "11736:24:37", + "nodeType": "YulFunctionCall", + "src": "11736:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "11725:7:37", + "nodeType": "YulIdentifier", + "src": "11725:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_contract$_IVerifier_$7453", + "nativeSrc": "11652:114:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "11697:5:37", + "nodeType": "YulTypedName", + "src": "11697:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "11707:7:37", + "nodeType": "YulTypedName", + "src": "11707:7:37", + "type": "" + } + ], + "src": "11652:114:37" + }, + { + "body": { + "nativeSrc": "11833:97:37", + "nodeType": "YulBlock", + "src": "11833:97:37", + "statements": [ + { + "body": { + "nativeSrc": "11908:16:37", + "nodeType": "YulBlock", + "src": "11908:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11917:1:37", + "nodeType": "YulLiteral", + "src": "11917:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11920:1:37", + "nodeType": "YulLiteral", + "src": "11920:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11910:6:37", + "nodeType": "YulIdentifier", + "src": "11910:6:37" + }, + "nativeSrc": "11910:12:37", + "nodeType": "YulFunctionCall", + "src": "11910:12:37" + }, + "nativeSrc": "11910:12:37", + "nodeType": "YulExpressionStatement", + "src": "11910:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "11856:5:37", + "nodeType": "YulIdentifier", + "src": "11856:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "11899:5:37", + "nodeType": "YulIdentifier", + "src": "11899:5:37" + } + ], + "functionName": { + "name": "cleanup_t_contract$_IVerifier_$7453", + "nativeSrc": "11863:35:37", + "nodeType": "YulIdentifier", + "src": "11863:35:37" + }, + "nativeSrc": "11863:42:37", + "nodeType": "YulFunctionCall", + "src": "11863:42:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "11853:2:37", + "nodeType": "YulIdentifier", + "src": "11853:2:37" + }, + "nativeSrc": "11853:53:37", + "nodeType": "YulFunctionCall", + "src": "11853:53:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11846:6:37", + "nodeType": "YulIdentifier", + "src": "11846:6:37" + }, + "nativeSrc": "11846:61:37", + "nodeType": "YulFunctionCall", + "src": "11846:61:37" + }, + "nativeSrc": "11843:81:37", + "nodeType": "YulIf", + "src": "11843:81:37" + } + ] + }, + "name": "validator_revert_t_contract$_IVerifier_$7453", + "nativeSrc": "11772:158:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "11826:5:37", + "nodeType": "YulTypedName", + "src": "11826:5:37", + "type": "" + } + ], + "src": "11772:158:37" + }, + { + "body": { + "nativeSrc": "12017:98:37", + "nodeType": "YulBlock", + "src": "12017:98:37", + "statements": [ + { + "nativeSrc": "12027:22:37", + "nodeType": "YulAssignment", + "src": "12027:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12042:6:37", + "nodeType": "YulIdentifier", + "src": "12042:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12036:5:37", + "nodeType": "YulIdentifier", + "src": "12036:5:37" + }, + "nativeSrc": "12036:13:37", + "nodeType": "YulFunctionCall", + "src": "12036:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "12027:5:37", + "nodeType": "YulIdentifier", + "src": "12027:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "12103:5:37", + "nodeType": "YulIdentifier", + "src": "12103:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_contract$_IVerifier_$7453", + "nativeSrc": "12058:44:37", + "nodeType": "YulIdentifier", + "src": "12058:44:37" + }, + "nativeSrc": "12058:51:37", + "nodeType": "YulFunctionCall", + "src": "12058:51:37" + }, + "nativeSrc": "12058:51:37", + "nodeType": "YulExpressionStatement", + "src": "12058:51:37" + } + ] + }, + "name": "abi_decode_t_contract$_IVerifier_$7453_fromMemory", + "nativeSrc": "11936:179:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "11995:6:37", + "nodeType": "YulTypedName", + "src": "11995:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "12003:3:37", + "nodeType": "YulTypedName", + "src": "12003:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "12011:5:37", + "nodeType": "YulTypedName", + "src": "12011:5:37", + "type": "" + } + ], + "src": "11936:179:37" + }, + { + "body": { + "nativeSrc": "12184:80:37", + "nodeType": "YulBlock", + "src": "12184:80:37", + "statements": [ + { + "nativeSrc": "12194:22:37", + "nodeType": "YulAssignment", + "src": "12194:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12209:6:37", + "nodeType": "YulIdentifier", + "src": "12209:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12203:5:37", + "nodeType": "YulIdentifier", + "src": "12203:5:37" + }, + "nativeSrc": "12203:13:37", + "nodeType": "YulFunctionCall", + "src": "12203:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "12194:5:37", + "nodeType": "YulIdentifier", + "src": "12194:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "12252:5:37", + "nodeType": "YulIdentifier", + "src": "12252:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "12225:26:37", + "nodeType": "YulIdentifier", + "src": "12225:26:37" + }, + "nativeSrc": "12225:33:37", + "nodeType": "YulFunctionCall", + "src": "12225:33:37" + }, + "nativeSrc": "12225:33:37", + "nodeType": "YulExpressionStatement", + "src": "12225:33:37" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "12121:143:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "12162:6:37", + "nodeType": "YulTypedName", + "src": "12162:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "12170:3:37", + "nodeType": "YulTypedName", + "src": "12170:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "12178:5:37", + "nodeType": "YulTypedName", + "src": "12178:5:37", + "type": "" + } + ], + "src": "12121:143:37" + }, + { + "body": { + "nativeSrc": "12416:710:37", + "nodeType": "YulBlock", + "src": "12416:710:37", + "statements": [ + { + "body": { + "nativeSrc": "12463:83:37", + "nodeType": "YulBlock", + "src": "12463:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "12465:77:37", + "nodeType": "YulIdentifier", + "src": "12465:77:37" + }, + "nativeSrc": "12465:79:37", + "nodeType": "YulFunctionCall", + "src": "12465:79:37" + }, + "nativeSrc": "12465:79:37", + "nodeType": "YulExpressionStatement", + "src": "12465:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "12437:7:37", + "nodeType": "YulIdentifier", + "src": "12437:7:37" + }, + { + "name": "headStart", + "nativeSrc": "12446:9:37", + "nodeType": "YulIdentifier", + "src": "12446:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12433:3:37", + "nodeType": "YulIdentifier", + "src": "12433:3:37" + }, + "nativeSrc": "12433:23:37", + "nodeType": "YulFunctionCall", + "src": "12433:23:37" + }, + { + "kind": "number", + "nativeSrc": "12458:3:37", + "nodeType": "YulLiteral", + "src": "12458:3:37", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "12429:3:37", + "nodeType": "YulIdentifier", + "src": "12429:3:37" + }, + "nativeSrc": "12429:33:37", + "nodeType": "YulFunctionCall", + "src": "12429:33:37" + }, + "nativeSrc": "12426:120:37", + "nodeType": "YulIf", + "src": "12426:120:37" + }, + { + "nativeSrc": "12556:128:37", + "nodeType": "YulBlock", + "src": "12556:128:37", + "statements": [ + { + "nativeSrc": "12571:15:37", + "nodeType": "YulVariableDeclaration", + "src": "12571:15:37", + "value": { + "kind": "number", + "nativeSrc": "12585:1:37", + "nodeType": "YulLiteral", + "src": "12585:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "12575:6:37", + "nodeType": "YulTypedName", + "src": "12575:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "12600:74:37", + "nodeType": "YulAssignment", + "src": "12600:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12646:9:37", + "nodeType": "YulIdentifier", + "src": "12646:9:37" + }, + { + "name": "offset", + "nativeSrc": "12657:6:37", + "nodeType": "YulIdentifier", + "src": "12657:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12642:3:37", + "nodeType": "YulIdentifier", + "src": "12642:3:37" + }, + "nativeSrc": "12642:22:37", + "nodeType": "YulFunctionCall", + "src": "12642:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "12666:7:37", + "nodeType": "YulIdentifier", + "src": "12666:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "12610:31:37", + "nodeType": "YulIdentifier", + "src": "12610:31:37" + }, + "nativeSrc": "12610:64:37", + "nodeType": "YulFunctionCall", + "src": "12610:64:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "12600:6:37", + "nodeType": "YulIdentifier", + "src": "12600:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "12694:147:37", + "nodeType": "YulBlock", + "src": "12694:147:37", + "statements": [ + { + "nativeSrc": "12709:16:37", + "nodeType": "YulVariableDeclaration", + "src": "12709:16:37", + "value": { + "kind": "number", + "nativeSrc": "12723:2:37", + "nodeType": "YulLiteral", + "src": "12723:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "12713:6:37", + "nodeType": "YulTypedName", + "src": "12713:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "12739:92:37", + "nodeType": "YulAssignment", + "src": "12739:92:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12803:9:37", + "nodeType": "YulIdentifier", + "src": "12803:9:37" + }, + { + "name": "offset", + "nativeSrc": "12814:6:37", + "nodeType": "YulIdentifier", + "src": "12814:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12799:3:37", + "nodeType": "YulIdentifier", + "src": "12799:3:37" + }, + "nativeSrc": "12799:22:37", + "nodeType": "YulFunctionCall", + "src": "12799:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "12823:7:37", + "nodeType": "YulIdentifier", + "src": "12823:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IVerifier_$7453_fromMemory", + "nativeSrc": "12749:49:37", + "nodeType": "YulIdentifier", + "src": "12749:49:37" + }, + "nativeSrc": "12749:82:37", + "nodeType": "YulFunctionCall", + "src": "12749:82:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "12739:6:37", + "nodeType": "YulIdentifier", + "src": "12739:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "12851:129:37", + "nodeType": "YulBlock", + "src": "12851:129:37", + "statements": [ + { + "nativeSrc": "12866:16:37", + "nodeType": "YulVariableDeclaration", + "src": "12866:16:37", + "value": { + "kind": "number", + "nativeSrc": "12880:2:37", + "nodeType": "YulLiteral", + "src": "12880:2:37", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "12870:6:37", + "nodeType": "YulTypedName", + "src": "12870:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "12896:74:37", + "nodeType": "YulAssignment", + "src": "12896:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12942:9:37", + "nodeType": "YulIdentifier", + "src": "12942:9:37" + }, + { + "name": "offset", + "nativeSrc": "12953:6:37", + "nodeType": "YulIdentifier", + "src": "12953:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12938:3:37", + "nodeType": "YulIdentifier", + "src": "12938:3:37" + }, + "nativeSrc": "12938:22:37", + "nodeType": "YulFunctionCall", + "src": "12938:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "12962:7:37", + "nodeType": "YulIdentifier", + "src": "12962:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "12906:31:37", + "nodeType": "YulIdentifier", + "src": "12906:31:37" + }, + "nativeSrc": "12906:64:37", + "nodeType": "YulFunctionCall", + "src": "12906:64:37" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "12896:6:37", + "nodeType": "YulIdentifier", + "src": "12896:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "12990:129:37", + "nodeType": "YulBlock", + "src": "12990:129:37", + "statements": [ + { + "nativeSrc": "13005:16:37", + "nodeType": "YulVariableDeclaration", + "src": "13005:16:37", + "value": { + "kind": "number", + "nativeSrc": "13019:2:37", + "nodeType": "YulLiteral", + "src": "13019:2:37", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "13009:6:37", + "nodeType": "YulTypedName", + "src": "13009:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "13035:74:37", + "nodeType": "YulAssignment", + "src": "13035:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13081:9:37", + "nodeType": "YulIdentifier", + "src": "13081:9:37" + }, + { + "name": "offset", + "nativeSrc": "13092:6:37", + "nodeType": "YulIdentifier", + "src": "13092:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13077:3:37", + "nodeType": "YulIdentifier", + "src": "13077:3:37" + }, + "nativeSrc": "13077:22:37", + "nodeType": "YulFunctionCall", + "src": "13077:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "13101:7:37", + "nodeType": "YulIdentifier", + "src": "13101:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "13045:31:37", + "nodeType": "YulIdentifier", + "src": "13045:31:37" + }, + "nativeSrc": "13045:64:37", + "nodeType": "YulFunctionCall", + "src": "13045:64:37" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "13035:6:37", + "nodeType": "YulIdentifier", + "src": "13035:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_contract$_IVerifier_$7453t_uint256t_uint256_fromMemory", + "nativeSrc": "12270:856:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12362:9:37", + "nodeType": "YulTypedName", + "src": "12362:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "12373:7:37", + "nodeType": "YulTypedName", + "src": "12373:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "12385:6:37", + "nodeType": "YulTypedName", + "src": "12385:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "12393:6:37", + "nodeType": "YulTypedName", + "src": "12393:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "12401:6:37", + "nodeType": "YulTypedName", + "src": "12401:6:37", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "12409:6:37", + "nodeType": "YulTypedName", + "src": "12409:6:37", + "type": "" + } + ], + "src": "12270:856:37" + }, + { + "body": { + "nativeSrc": "13286:288:37", + "nodeType": "YulBlock", + "src": "13286:288:37", + "statements": [ + { + "nativeSrc": "13296:26:37", + "nodeType": "YulAssignment", + "src": "13296:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13308:9:37", + "nodeType": "YulIdentifier", + "src": "13308:9:37" + }, + { + "kind": "number", + "nativeSrc": "13319:2:37", + "nodeType": "YulLiteral", + "src": "13319:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13304:3:37", + "nodeType": "YulIdentifier", + "src": "13304:3:37" + }, + "nativeSrc": "13304:18:37", + "nodeType": "YulFunctionCall", + "src": "13304:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13296:4:37", + "nodeType": "YulIdentifier", + "src": "13296:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "13376:6:37", + "nodeType": "YulIdentifier", + "src": "13376:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13389:9:37", + "nodeType": "YulIdentifier", + "src": "13389:9:37" + }, + { + "kind": "number", + "nativeSrc": "13400:1:37", + "nodeType": "YulLiteral", + "src": "13400:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13385:3:37", + "nodeType": "YulIdentifier", + "src": "13385:3:37" + }, + "nativeSrc": "13385:17:37", + "nodeType": "YulFunctionCall", + "src": "13385:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "13332:43:37", + "nodeType": "YulIdentifier", + "src": "13332:43:37" + }, + "nativeSrc": "13332:71:37", + "nodeType": "YulFunctionCall", + "src": "13332:71:37" + }, + "nativeSrc": "13332:71:37", + "nodeType": "YulExpressionStatement", + "src": "13332:71:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "13457:6:37", + "nodeType": "YulIdentifier", + "src": "13457:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13470:9:37", + "nodeType": "YulIdentifier", + "src": "13470:9:37" + }, + { + "kind": "number", + "nativeSrc": "13481:2:37", + "nodeType": "YulLiteral", + "src": "13481:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13466:3:37", + "nodeType": "YulIdentifier", + "src": "13466:3:37" + }, + "nativeSrc": "13466:18:37", + "nodeType": "YulFunctionCall", + "src": "13466:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "13413:43:37", + "nodeType": "YulIdentifier", + "src": "13413:43:37" + }, + "nativeSrc": "13413:72:37", + "nodeType": "YulFunctionCall", + "src": "13413:72:37" + }, + "nativeSrc": "13413:72:37", + "nodeType": "YulExpressionStatement", + "src": "13413:72:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "13539:6:37", + "nodeType": "YulIdentifier", + "src": "13539:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13552:9:37", + "nodeType": "YulIdentifier", + "src": "13552:9:37" + }, + { + "kind": "number", + "nativeSrc": "13563:2:37", + "nodeType": "YulLiteral", + "src": "13563:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13548:3:37", + "nodeType": "YulIdentifier", + "src": "13548:3:37" + }, + "nativeSrc": "13548:18:37", + "nodeType": "YulFunctionCall", + "src": "13548:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "13495:43:37", + "nodeType": "YulIdentifier", + "src": "13495:43:37" + }, + "nativeSrc": "13495:72:37", + "nodeType": "YulFunctionCall", + "src": "13495:72:37" + }, + "nativeSrc": "13495:72:37", + "nodeType": "YulExpressionStatement", + "src": "13495:72:37" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_address_t_uint256__to_t_bytes32_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "13132:442:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13242:9:37", + "nodeType": "YulTypedName", + "src": "13242:9:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "13254:6:37", + "nodeType": "YulTypedName", + "src": "13254:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13262:6:37", + "nodeType": "YulTypedName", + "src": "13262:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "13270:6:37", + "nodeType": "YulTypedName", + "src": "13270:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13281:4:37", + "nodeType": "YulTypedName", + "src": "13281:4:37", + "type": "" + } + ], + "src": "13132:442:37" + }, + { + "body": { + "nativeSrc": "13657:274:37", + "nodeType": "YulBlock", + "src": "13657:274:37", + "statements": [ + { + "body": { + "nativeSrc": "13703:83:37", + "nodeType": "YulBlock", + "src": "13703:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "13705:77:37", + "nodeType": "YulIdentifier", + "src": "13705:77:37" + }, + "nativeSrc": "13705:79:37", + "nodeType": "YulFunctionCall", + "src": "13705:79:37" + }, + "nativeSrc": "13705:79:37", + "nodeType": "YulExpressionStatement", + "src": "13705:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "13678:7:37", + "nodeType": "YulIdentifier", + "src": "13678:7:37" + }, + { + "name": "headStart", + "nativeSrc": "13687:9:37", + "nodeType": "YulIdentifier", + "src": "13687:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13674:3:37", + "nodeType": "YulIdentifier", + "src": "13674:3:37" + }, + "nativeSrc": "13674:23:37", + "nodeType": "YulFunctionCall", + "src": "13674:23:37" + }, + { + "kind": "number", + "nativeSrc": "13699:2:37", + "nodeType": "YulLiteral", + "src": "13699:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13670:3:37", + "nodeType": "YulIdentifier", + "src": "13670:3:37" + }, + "nativeSrc": "13670:32:37", + "nodeType": "YulFunctionCall", + "src": "13670:32:37" + }, + "nativeSrc": "13667:119:37", + "nodeType": "YulIf", + "src": "13667:119:37" + }, + { + "nativeSrc": "13796:128:37", + "nodeType": "YulBlock", + "src": "13796:128:37", + "statements": [ + { + "nativeSrc": "13811:15:37", + "nodeType": "YulVariableDeclaration", + "src": "13811:15:37", + "value": { + "kind": "number", + "nativeSrc": "13825:1:37", + "nodeType": "YulLiteral", + "src": "13825:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "13815:6:37", + "nodeType": "YulTypedName", + "src": "13815:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "13840:74:37", + "nodeType": "YulAssignment", + "src": "13840:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13886:9:37", + "nodeType": "YulIdentifier", + "src": "13886:9:37" + }, + { + "name": "offset", + "nativeSrc": "13897:6:37", + "nodeType": "YulIdentifier", + "src": "13897:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13882:3:37", + "nodeType": "YulIdentifier", + "src": "13882:3:37" + }, + "nativeSrc": "13882:22:37", + "nodeType": "YulFunctionCall", + "src": "13882:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "13906:7:37", + "nodeType": "YulIdentifier", + "src": "13906:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "13850:31:37", + "nodeType": "YulIdentifier", + "src": "13850:31:37" + }, + "nativeSrc": "13850:64:37", + "nodeType": "YulFunctionCall", + "src": "13850:64:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "13840:6:37", + "nodeType": "YulIdentifier", + "src": "13840:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nativeSrc": "13580:351:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13627:9:37", + "nodeType": "YulTypedName", + "src": "13627:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "13638:7:37", + "nodeType": "YulTypedName", + "src": "13638:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "13650:6:37", + "nodeType": "YulTypedName", + "src": "13650:6:37", + "type": "" + } + ], + "src": "13580:351:37" + }, + { + "body": { + "nativeSrc": "13990:32:37", + "nodeType": "YulBlock", + "src": "13990:32:37", + "statements": [ + { + "nativeSrc": "14000:16:37", + "nodeType": "YulAssignment", + "src": "14000:16:37", + "value": { + "name": "value", + "nativeSrc": "14011:5:37", + "nodeType": "YulIdentifier", + "src": "14011:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "14000:7:37", + "nodeType": "YulIdentifier", + "src": "14000:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_rational_1_by_1", + "nativeSrc": "13937:85:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "13972:5:37", + "nodeType": "YulTypedName", + "src": "13972:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "13982:7:37", + "nodeType": "YulTypedName", + "src": "13982:7:37", + "type": "" + } + ], + "src": "13937:85:37" + }, + { + "body": { + "nativeSrc": "14072:57:37", + "nodeType": "YulBlock", + "src": "14072:57:37", + "statements": [ + { + "nativeSrc": "14082:41:37", + "nodeType": "YulAssignment", + "src": "14082:41:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "14097:5:37", + "nodeType": "YulIdentifier", + "src": "14097:5:37" + }, + { + "kind": "number", + "nativeSrc": "14104:18:37", + "nodeType": "YulLiteral", + "src": "14104:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "14093:3:37", + "nodeType": "YulIdentifier", + "src": "14093:3:37" + }, + "nativeSrc": "14093:30:37", + "nodeType": "YulFunctionCall", + "src": "14093:30:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "14082:7:37", + "nodeType": "YulIdentifier", + "src": "14082:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint64", + "nativeSrc": "14028:101:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14054:5:37", + "nodeType": "YulTypedName", + "src": "14054:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "14064:7:37", + "nodeType": "YulTypedName", + "src": "14064:7:37", + "type": "" + } + ], + "src": "14028:101:37" + }, + { + "body": { + "nativeSrc": "14202:89:37", + "nodeType": "YulBlock", + "src": "14202:89:37", + "statements": [ + { + "nativeSrc": "14212:73:37", + "nodeType": "YulAssignment", + "src": "14212:73:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14277:5:37", + "nodeType": "YulIdentifier", + "src": "14277:5:37" + } + ], + "functionName": { + "name": "cleanup_t_rational_1_by_1", + "nativeSrc": "14251:25:37", + "nodeType": "YulIdentifier", + "src": "14251:25:37" + }, + "nativeSrc": "14251:32:37", + "nodeType": "YulFunctionCall", + "src": "14251:32:37" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "14242:8:37", + "nodeType": "YulIdentifier", + "src": "14242:8:37" + }, + "nativeSrc": "14242:42:37", + "nodeType": "YulFunctionCall", + "src": "14242:42:37" + } + ], + "functionName": { + "name": "cleanup_t_uint64", + "nativeSrc": "14225:16:37", + "nodeType": "YulIdentifier", + "src": "14225:16:37" + }, + "nativeSrc": "14225:60:37", + "nodeType": "YulFunctionCall", + "src": "14225:60:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "14212:9:37", + "nodeType": "YulIdentifier", + "src": "14212:9:37" + } + ] + } + ] + }, + "name": "convert_t_rational_1_by_1_to_t_uint64", + "nativeSrc": "14135:156:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14182:5:37", + "nodeType": "YulTypedName", + "src": "14182:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "14192:9:37", + "nodeType": "YulTypedName", + "src": "14192:9:37", + "type": "" + } + ], + "src": "14135:156:37" + }, + { + "body": { + "nativeSrc": "14369:73:37", + "nodeType": "YulBlock", + "src": "14369:73:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14386:3:37", + "nodeType": "YulIdentifier", + "src": "14386:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14429:5:37", + "nodeType": "YulIdentifier", + "src": "14429:5:37" + } + ], + "functionName": { + "name": "convert_t_rational_1_by_1_to_t_uint64", + "nativeSrc": "14391:37:37", + "nodeType": "YulIdentifier", + "src": "14391:37:37" + }, + "nativeSrc": "14391:44:37", + "nodeType": "YulFunctionCall", + "src": "14391:44:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14379:6:37", + "nodeType": "YulIdentifier", + "src": "14379:6:37" + }, + "nativeSrc": "14379:57:37", + "nodeType": "YulFunctionCall", + "src": "14379:57:37" + }, + "nativeSrc": "14379:57:37", + "nodeType": "YulExpressionStatement", + "src": "14379:57:37" + } + ] + }, + "name": "abi_encode_t_rational_1_by_1_to_t_uint64_fromStack", + "nativeSrc": "14297:145:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14357:5:37", + "nodeType": "YulTypedName", + "src": "14357:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14364:3:37", + "nodeType": "YulTypedName", + "src": "14364:3:37", + "type": "" + } + ], + "src": "14297:145:37" + }, + { + "body": { + "nativeSrc": "14553:131:37", + "nodeType": "YulBlock", + "src": "14553:131:37", + "statements": [ + { + "nativeSrc": "14563:26:37", + "nodeType": "YulAssignment", + "src": "14563:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14575:9:37", + "nodeType": "YulIdentifier", + "src": "14575:9:37" + }, + { + "kind": "number", + "nativeSrc": "14586:2:37", + "nodeType": "YulLiteral", + "src": "14586:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14571:3:37", + "nodeType": "YulIdentifier", + "src": "14571:3:37" + }, + "nativeSrc": "14571:18:37", + "nodeType": "YulFunctionCall", + "src": "14571:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14563:4:37", + "nodeType": "YulIdentifier", + "src": "14563:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "14650:6:37", + "nodeType": "YulIdentifier", + "src": "14650:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14663:9:37", + "nodeType": "YulIdentifier", + "src": "14663:9:37" + }, + { + "kind": "number", + "nativeSrc": "14674:1:37", + "nodeType": "YulLiteral", + "src": "14674:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14659:3:37", + "nodeType": "YulIdentifier", + "src": "14659:3:37" + }, + "nativeSrc": "14659:17:37", + "nodeType": "YulFunctionCall", + "src": "14659:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_rational_1_by_1_to_t_uint64_fromStack", + "nativeSrc": "14599:50:37", + "nodeType": "YulIdentifier", + "src": "14599:50:37" + }, + "nativeSrc": "14599:78:37", + "nodeType": "YulFunctionCall", + "src": "14599:78:37" + }, + "nativeSrc": "14599:78:37", + "nodeType": "YulExpressionStatement", + "src": "14599:78:37" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed", + "nativeSrc": "14448:236:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14525:9:37", + "nodeType": "YulTypedName", + "src": "14525:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "14537:6:37", + "nodeType": "YulTypedName", + "src": "14537:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14548:4:37", + "nodeType": "YulTypedName", + "src": "14548:4:37", + "type": "" + } + ], + "src": "14448:236:37" + }, + { + "body": { + "nativeSrc": "14718:152:37", + "nodeType": "YulBlock", + "src": "14718:152:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14735:1:37", + "nodeType": "YulLiteral", + "src": "14735:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14738:77:37", + "nodeType": "YulLiteral", + "src": "14738:77:37", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14728:6:37", + "nodeType": "YulIdentifier", + "src": "14728:6:37" + }, + "nativeSrc": "14728:88:37", + "nodeType": "YulFunctionCall", + "src": "14728:88:37" + }, + "nativeSrc": "14728:88:37", + "nodeType": "YulExpressionStatement", + "src": "14728:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14832:1:37", + "nodeType": "YulLiteral", + "src": "14832:1:37", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "14835:4:37", + "nodeType": "YulLiteral", + "src": "14835:4:37", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14825:6:37", + "nodeType": "YulIdentifier", + "src": "14825:6:37" + }, + "nativeSrc": "14825:15:37", + "nodeType": "YulFunctionCall", + "src": "14825:15:37" + }, + "nativeSrc": "14825:15:37", + "nodeType": "YulExpressionStatement", + "src": "14825:15:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14856:1:37", + "nodeType": "YulLiteral", + "src": "14856:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14859:4:37", + "nodeType": "YulLiteral", + "src": "14859:4:37", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14849:6:37", + "nodeType": "YulIdentifier", + "src": "14849:6:37" + }, + "nativeSrc": "14849:15:37", + "nodeType": "YulFunctionCall", + "src": "14849:15:37" + }, + "nativeSrc": "14849:15:37", + "nodeType": "YulExpressionStatement", + "src": "14849:15:37" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "14690:180:37", + "nodeType": "YulFunctionDefinition", + "src": "14690:180:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_bytes32t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IVerifier_$7453_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IVerifier_$7453_to_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_contract$_IVerifier_$7453_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function convert_t_contract$_ISciRegistry_$7088_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7088_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes32[]\n function abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_bytes32(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // bytes32[]\n function abi_decode_t_array$_t_bytes32_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptrt_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_bytes32_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_contract$_IVerifier_$7453(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IVerifier_$7453(value) {\n if iszero(eq(value, cleanup_t_contract$_IVerifier_$7453(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IVerifier_$7453_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_IVerifier_$7453(value)\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_contract$_IVerifier_$7453t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_contract$_IVerifier_$7453_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_bytes32_t_address_t_uint256__to_t_bytes32_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_rational_1_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function convert_t_rational_1_by_1_to_t_uint64(value) -> converted {\n converted := cleanup_t_uint64(identity(cleanup_t_rational_1_by_1(value)))\n }\n\n function abi_encode_t_rational_1_by_1_to_t_uint64_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1_by_1_to_t_uint64(value))\n }\n\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_1_by_1_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220821405c484cd8f087bce149e0b629c117ae2f5f6ce02e02cc9ceab8cc5f1b3a064736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x929D1AC1 EQ PUSH2 0x17D JUMPI DUP1 PUSH4 0xA91EE0DC EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E7 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x2019241B EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0xDE JUMPI DUP1 PUSH4 0x5B377FA2 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x137 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xD38 JUMP JUMPDEST PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xDB5 JUMP JUMPDEST PUSH2 0x36C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x114 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10F SWAP2 SWAP1 PUSH2 0xDF5 JUMP JUMPDEST PUSH2 0x50D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x124 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE90 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x135 PUSH2 0x5BC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13F PUSH2 0x5D0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x149 PUSH2 0x65F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x156 SWAP2 SWAP1 PUSH2 0xEF6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x167 PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x174 SWAP2 SWAP1 PUSH2 0xF11 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x197 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x192 SWAP2 SWAP1 PUSH2 0x1085 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A4 SWAP2 SWAP1 PUSH2 0x11B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C2 SWAP2 SWAP1 PUSH2 0x11D4 JUMP JUMPDEST PUSH2 0x778 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1D1 PUSH2 0x844 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0xF11 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x201 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x11D4 JUMP JUMPDEST PUSH2 0x87C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B377FA2 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x25F SWAP2 SWAP1 PUSH2 0x1210 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x1293 JUMP JUMPDEST POP POP SWAP2 POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2E3 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x365 JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x46852D0 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x320 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x12FA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x361 SWAP2 SWAP1 PUSH2 0x1331 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x376 PUSH2 0x938 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x3C4 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x3F9 JUMPI POP PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x407 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x43E JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP6 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 ISZERO PUSH2 0x48E JUMPI PUSH1 0x1 DUP6 PUSH1 0x0 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x496 PUSH2 0x960 JUMP JUMPDEST PUSH2 0x49F DUP8 PUSH2 0x96A JUMP JUMPDEST PUSH2 0x4A8 DUP7 PUSH2 0x778 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP6 PUSH1 0x0 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x4FB SWAP2 SWAP1 PUSH2 0x13AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B377FA2 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x56C SWAP2 SWAP1 PUSH2 0x1210 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5AD SWAP2 SWAP1 PUSH2 0x1293 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST PUSH2 0x5C4 PUSH2 0x97E JUMP JUMPDEST PUSH2 0x5CE PUSH1 0x0 PUSH2 0xA05 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DA PUSH2 0xA45 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x5FB PUSH2 0x844 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x653 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64A SWAP2 SWAP1 PUSH2 0xF11 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x65C DUP2 PUSH2 0xA05 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x68E PUSH2 0xA4D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6DA JUMPI PUSH2 0x6D9 PUSH2 0xF42 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x708 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP6 MLOAD SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x76B JUMPI PUSH2 0x741 DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x732 JUMPI PUSH2 0x731 PUSH2 0x13C8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP8 PUSH2 0x203 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x754 JUMPI PUSH2 0x753 PUSH2 0x13C8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x714 JUMP JUMPDEST POP DUP2 SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x780 PUSH2 0x97E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x363C56730E510C61B9B1C8DA206585B5F5FA0EB1F76E05C2FCF82EE006FFF9F5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x84F PUSH2 0xA75 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH2 0x884 PUSH2 0x97E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x88E PUSH2 0xA75 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8F2 PUSH2 0x683 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x968 PUSH2 0xA9D JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x972 PUSH2 0xA9D JUMP JUMPDEST PUSH2 0x97B DUP2 PUSH2 0xADD JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x986 PUSH2 0xA45 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x9A4 PUSH2 0x683 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xA03 JUMPI PUSH2 0x9C7 PUSH2 0xA45 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9FA SWAP2 SWAP1 PUSH2 0xF11 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0F PUSH2 0xA75 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH2 0xA41 DUP3 PUSH2 0xB63 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAA5 PUSH2 0xC3A JUMP JUMPDEST PUSH2 0xADB JUMPI PUSH1 0x40 MLOAD PUSH32 0xD7E6BCF800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xAE5 PUSH2 0xA9D JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB57 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP2 SWAP1 PUSH2 0xF11 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB60 DUP2 PUSH2 0xA05 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB6D PUSH2 0xA4D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 DUP3 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC44 PUSH2 0x938 JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC81 DUP2 PUSH2 0xC6E JUMP JUMPDEST DUP2 EQ PUSH2 0xC8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC9E DUP2 PUSH2 0xC78 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCCF DUP3 PUSH2 0xCA4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCDF DUP2 PUSH2 0xCC4 JUMP JUMPDEST DUP2 EQ PUSH2 0xCEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCFC DUP2 PUSH2 0xCD6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD15 DUP2 PUSH2 0xD02 JUMP JUMPDEST DUP2 EQ PUSH2 0xD20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD32 DUP2 PUSH2 0xD0C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD51 JUMPI PUSH2 0xD50 PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD5F DUP7 DUP3 DUP8 ADD PUSH2 0xC8F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD70 DUP7 DUP3 DUP8 ADD PUSH2 0xCED JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD81 DUP7 DUP3 DUP8 ADD PUSH2 0xD23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0xD94 DUP2 PUSH2 0xD02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDAF PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD8B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDCC JUMPI PUSH2 0xDCB PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDDA DUP6 DUP3 DUP7 ADD PUSH2 0xCED JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDEB DUP6 DUP3 DUP7 ADD PUSH2 0xCED JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE0B JUMPI PUSH2 0xE0A PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE19 DUP5 DUP3 DUP6 ADD PUSH2 0xC8F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE2B DUP2 PUSH2 0xCC4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE56 PUSH2 0xE51 PUSH2 0xE4C DUP5 PUSH2 0xCA4 JUMP JUMPDEST PUSH2 0xE31 JUMP JUMPDEST PUSH2 0xCA4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE68 DUP3 PUSH2 0xE3B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE7A DUP3 PUSH2 0xE5D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE8A DUP2 PUSH2 0xE6F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xEA5 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0xE22 JUMP JUMPDEST PUSH2 0xEB2 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xE81 JUMP JUMPDEST PUSH2 0xEBF PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xD8B JUMP JUMPDEST PUSH2 0xECC PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xD8B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE0 DUP3 PUSH2 0xE5D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEF0 DUP2 PUSH2 0xED5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF0B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEE7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF26 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE22 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xF7A DUP3 PUSH2 0xF31 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xF99 JUMPI PUSH2 0xF98 PUSH2 0xF42 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFAC PUSH2 0xC5A JUMP JUMPDEST SWAP1 POP PUSH2 0xFB8 DUP3 DUP3 PUSH2 0xF71 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xFD8 JUMPI PUSH2 0xFD7 PUSH2 0xF42 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1001 PUSH2 0xFFC DUP5 PUSH2 0xFBD JUMP JUMPDEST PUSH2 0xFA2 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1024 JUMPI PUSH2 0x1023 PUSH2 0xFE9 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x104D JUMPI DUP1 PUSH2 0x1039 DUP9 DUP3 PUSH2 0xC8F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1026 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x106C JUMPI PUSH2 0x106B PUSH2 0xF2C JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x107C DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xFEE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x109E JUMPI PUSH2 0x109D PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10BC JUMPI PUSH2 0x10BB PUSH2 0xC69 JUMP JUMPDEST JUMPDEST PUSH2 0x10C8 DUP7 DUP3 DUP8 ADD PUSH2 0x1057 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x10D9 DUP7 DUP3 DUP8 ADD PUSH2 0xCED JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x10EA DUP7 DUP3 DUP8 ADD PUSH2 0xD23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1129 DUP2 PUSH2 0xD02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x113B DUP4 DUP4 PUSH2 0x1120 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x115F DUP3 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x1169 DUP2 DUP6 PUSH2 0x10FF JUMP JUMPDEST SWAP4 POP PUSH2 0x1174 DUP4 PUSH2 0x1110 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11A5 JUMPI DUP2 MLOAD PUSH2 0x118C DUP9 DUP3 PUSH2 0x112F JUMP JUMPDEST SWAP8 POP PUSH2 0x1197 DUP4 PUSH2 0x1147 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1178 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11CC DUP2 DUP5 PUSH2 0x1154 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11EA JUMPI PUSH2 0x11E9 PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x11F8 DUP5 DUP3 DUP6 ADD PUSH2 0xCED JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x120A DUP2 PUSH2 0xC6E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1225 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1201 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x123A DUP2 PUSH2 0xCD6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x124B DUP3 PUSH2 0xCC4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x125B DUP2 PUSH2 0x1240 JUMP JUMPDEST DUP2 EQ PUSH2 0x1266 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1278 DUP2 PUSH2 0x1252 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x128D DUP2 PUSH2 0xD0C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x12AD JUMPI PUSH2 0x12AC PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12BB DUP8 DUP3 DUP9 ADD PUSH2 0x122B JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x12CC DUP8 DUP3 DUP9 ADD PUSH2 0x1269 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x12DD DUP8 DUP3 DUP9 ADD PUSH2 0x127E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x12EE DUP8 DUP3 DUP9 ADD PUSH2 0x127E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x130F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1201 JUMP JUMPDEST PUSH2 0x131C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xE22 JUMP JUMPDEST PUSH2 0x1329 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xD8B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1347 JUMPI PUSH2 0x1346 PUSH2 0xC64 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1355 DUP5 DUP3 DUP6 ADD PUSH2 0x127E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1397 PUSH2 0x1392 PUSH2 0x138D DUP5 PUSH2 0x135E JUMP JUMPDEST PUSH2 0xE31 JUMP JUMPDEST PUSH2 0x1368 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13A7 DUP2 PUSH2 0x137C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x13C2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x139E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP3 EQ SDIV 0xC4 DUP5 0xCD DUP16 ADDMOD PUSH28 0xCE149E0B629C117AE2F5F6CE02E02CC9CEAB8CC5F1B3A064736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "708:3783:32:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3696:395;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1261:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1573:324;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3155:101:3;;;:::i;:::-;;2774:229:2;;;:::i;:::-;;769:28:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2441:144:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2421:659:32;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4262:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1680:168:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2041:247;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3696:395:32;3842:7;3864:18;3890:8;;;;;;;;;;:27;;;3918:10;3890:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3861:68;;;;;3973:1;3944:31;;3952:8;3944:31;;;3940:70;;3998:1;3991:8;;;;;3940:70;4027:8;:19;;;4047:10;4059:15;4076:7;4027:57;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4020:64;;;3696:395;;;;;;:::o;1261:188::-;4158:30:4;4191:26;:24;:26::i;:::-;4158:59;;4279:19;4302:1;:15;;;;;;;;;;;;4301:16;4279:38;;4327:18;4348:1;:14;;;;;;;;;;;;4327:35;;4706:17;4741:1;4726:11;:16;;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4805:1;4790:11;:16;;;:50;;;;;4839:1;4818:4;4810:25;;;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;;;;;;;;;;;;;4851:91;4968:1;4951;:14;;;:18;;;;;;;;;;;;;;;;;;4983:14;4979:67;;;5031:4;5013:1;:15;;;:22;;;;;;;;;;;;;;;;;;4979:67;1352:21:32::1;:19;:21::i;:::-;1383;1398:5;1383:14;:21::i;:::-;1414:28;1426:15;1414:11;:28::i;:::-;5070:14:4::0;5066:101;;;5118:5;5100:1;:15;;;:23;;;;;;;;;;;;;;;;;;5142:14;5154:1;5142:14;;;;;;:::i;:::-;;;;;;;;5066:101;4092:1081;;;;;1261:188:32;;:::o;1573:324::-;1695:13;1722:18;1754:24;1792:27;1851:8;;;;;;;;;;:27;;;1879:10;1851:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1844:46;;;;;;;;1573:324;;;;;:::o;3155:101:3:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;2774:229:2:-;2826:14;2843:12;:10;:12::i;:::-;2826:29;;2887:6;2869:24;;:14;:12;:14::i;:::-;:24;;;2865:96;;2943:6;2916:34;;;;;;;;;;;:::i;:::-;;;;;;;;2865:96;2970:26;2989:6;2970:18;:26::i;:::-;2816:187;2774:229::o;769:28:32:-;;;;;;;;;;;;:::o;2441:144:3:-;2487:7;2506:24;2533:20;:18;:20::i;:::-;2506:47;;2570:1;:8;;;;;;;;;;;;2563:15;;;2441:144;:::o;2421:659:32:-;2590:16;2618:36;2671:12;:19;2657:34;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2618:73;;2701:26;2730:12;:19;2701:48;;2764:9;2759:279;2779:18;2775:1;:22;2759:279;;;2840:128;2881:12;2894:1;2881:15;;;;;;;;:::i;:::-;;;;;;;;2914;2947:7;2840:23;:128::i;:::-;2815:19;2835:1;2815:22;;;;;;;;:::i;:::-;;;;;;;:153;;;;;3010:3;;;;;2759:279;;;;3054:19;3047:26;;;;2421:659;;;;;:::o;4262:227::-;2334:13:3;:11;:13::i;:::-;4331:26:32::1;4368:8:::0;::::1;;;;;;;;;;4331:46;;4411:11;4387:8;::::0;:36:::1;;;;;;;;;;;;;;;;;;4470:11;4438:44;;4450:18;4438:44;;;;;;;;;;;;4321:168;4262:227:::0;:::o;1680:168:2:-;1733:7;1752:29;1784:25;:23;:25::i;:::-;1752:57;;1826:1;:15;;;;;;;;;;;;1819:22;;;1680:168;:::o;2041:247::-;2334:13:3;:11;:13::i;:::-;2130:29:2::1;2162:25;:23;:25::i;:::-;2130:57;;2215:8;2197:1;:15;;;:26;;;;;;;;;;;;;;;;;;2272:8;2238:43;;2263:7;:5;:7::i;:::-;2238:43;;;;;;;;;;;;2120:168;2041:247:::0;:::o;8737:170:4:-;8795:30;8870:21;8860:31;;8737:170;:::o;1461:64:2:-;6931:20:4;:18;:20::i;:::-;1461:64:2:o;1847:127:3:-;6931:20:4;:18;:20::i;:::-;1929:38:3::1;1954:12;1929:24;:38::i;:::-;1847:127:::0;:::o;2658:162::-;2728:12;:10;:12::i;:::-;2717:23;;:7;:5;:7::i;:::-;:23;;;2713:101;;2790:12;:10;:12::i;:::-;2763:40;;;;;;;;;;;:::i;:::-;;;;;;;;2713:101;2658:162::o;2472:222:2:-;2554:29;2586:25;:23;:25::i;:::-;2554:57;;2628:1;:15;;;2621:22;;;;;;;;;;;2653:34;2678:8;2653:24;:34::i;:::-;2544:150;2472:222;:::o;887:96:5:-;940:7;966:10;959:17;;887:96;:::o;1192:159:3:-;1244:24;1313:22;1303:32;;1192:159;:::o;1187:174:2:-;1244:29;1318:27;1308:37;;1187:174;:::o;7084:141:4:-;7151:17;:15;:17::i;:::-;7146:73;;7191:17;;;;;;;;;;;;;;7146:73;7084:141::o;1980:235:3:-;6931:20:4;:18;:20::i;:::-;2100:1:3::1;2076:26;;:12;:26;;::::0;2072:95:::1;;2153:1;2125:31;;;;;;;;;;;:::i;:::-;;;;;;;;2072:95;2176:32;2195:12;2176:18;:32::i;:::-;1980:235:::0;:::o;3774:248::-;3847:24;3874:20;:18;:20::i;:::-;3847:47;;3904:16;3923:1;:8;;;;;;;;;;;;3904:27;;3952:8;3941:1;:8;;;:19;;;;;;;;;;;;;;;;;;4006:8;3975:40;;3996:8;3975:40;;;;;;;;;;;;3837:185;;3774:248;:::o;8487:120:4:-;8537:4;8560:26;:24;:26::i;:::-;:40;;;;;;;;;;;;8553:47;;8487:120;:::o;7:75:37:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:77::-;1234:7;1263:5;1252:16;;1197:77;;;:::o;1280:122::-;1353:24;1371:5;1353:24;:::i;:::-;1346:5;1343:35;1333:63;;1392:1;1389;1382:12;1333:63;1280:122;:::o;1408:139::-;1454:5;1492:6;1479:20;1470:29;;1508:33;1535:5;1508:33;:::i;:::-;1408:139;;;;:::o;1553:619::-;1630:6;1638;1646;1695:2;1683:9;1674:7;1670:23;1666:32;1663:119;;;1701:79;;:::i;:::-;1663:119;1821:1;1846:53;1891:7;1882:6;1871:9;1867:22;1846:53;:::i;:::-;1836:63;;1792:117;1948:2;1974:53;2019:7;2010:6;1999:9;1995:22;1974:53;:::i;:::-;1964:63;;1919:118;2076:2;2102:53;2147:7;2138:6;2127:9;2123:22;2102:53;:::i;:::-;2092:63;;2047:118;1553:619;;;;;:::o;2178:118::-;2265:24;2283:5;2265:24;:::i;:::-;2260:3;2253:37;2178:118;;:::o;2302:222::-;2395:4;2433:2;2422:9;2418:18;2410:26;;2446:71;2514:1;2503:9;2499:17;2490:6;2446:71;:::i;:::-;2302:222;;;;:::o;2530:474::-;2598:6;2606;2655:2;2643:9;2634:7;2630:23;2626:32;2623:119;;;2661:79;;:::i;:::-;2623:119;2781:1;2806:53;2851:7;2842:6;2831:9;2827:22;2806:53;:::i;:::-;2796:63;;2752:117;2908:2;2934:53;2979:7;2970:6;2959:9;2955:22;2934:53;:::i;:::-;2924:63;;2879:118;2530:474;;;;;:::o;3010:329::-;3069:6;3118:2;3106:9;3097:7;3093:23;3089:32;3086:119;;;3124:79;;:::i;:::-;3086:119;3244:1;3269:53;3314:7;3305:6;3294:9;3290:22;3269:53;:::i;:::-;3259:63;;3215:117;3010:329;;;;:::o;3345:118::-;3432:24;3450:5;3432:24;:::i;:::-;3427:3;3420:37;3345:118;;:::o;3469:60::-;3497:3;3518:5;3511:12;;3469:60;;;:::o;3535:142::-;3585:9;3618:53;3636:34;3645:24;3663:5;3645:24;:::i;:::-;3636:34;:::i;:::-;3618:53;:::i;:::-;3605:66;;3535:142;;;:::o;3683:126::-;3733:9;3766:37;3797:5;3766:37;:::i;:::-;3753:50;;3683:126;;;:::o;3815:144::-;3883:9;3916:37;3947:5;3916:37;:::i;:::-;3903:50;;3815:144;;;:::o;3965:167::-;4070:55;4119:5;4070:55;:::i;:::-;4065:3;4058:68;3965:167;;:::o;4138:589::-;4333:4;4371:3;4360:9;4356:19;4348:27;;4385:71;4453:1;4442:9;4438:17;4429:6;4385:71;:::i;:::-;4466:90;4552:2;4541:9;4537:18;4528:6;4466:90;:::i;:::-;4566:72;4634:2;4623:9;4619:18;4610:6;4566:72;:::i;:::-;4648;4716:2;4705:9;4701:18;4692:6;4648:72;:::i;:::-;4138:589;;;;;;;:::o;4733:147::-;4804:9;4837:37;4868:5;4837:37;:::i;:::-;4824:50;;4733:147;;;:::o;4886:173::-;4994:58;5046:5;4994:58;:::i;:::-;4989:3;4982:71;4886:173;;:::o;5065:264::-;5179:4;5217:2;5206:9;5202:18;5194:26;;5230:92;5319:1;5308:9;5304:17;5295:6;5230:92;:::i;:::-;5065:264;;;;:::o;5335:222::-;5428:4;5466:2;5455:9;5451:18;5443:26;;5479:71;5547:1;5536:9;5532:17;5523:6;5479:71;:::i;:::-;5335:222;;;;:::o;5563:117::-;5672:1;5669;5662:12;5686:102;5727:6;5778:2;5774:7;5769:2;5762:5;5758:14;5754:28;5744:38;;5686:102;;;:::o;5794:180::-;5842:77;5839:1;5832:88;5939:4;5936:1;5929:15;5963:4;5960:1;5953:15;5980:281;6063:27;6085:4;6063:27;:::i;:::-;6055:6;6051:40;6193:6;6181:10;6178:22;6157:18;6145:10;6142:34;6139:62;6136:88;;;6204:18;;:::i;:::-;6136:88;6244:10;6240:2;6233:22;6023:238;5980:281;;:::o;6267:129::-;6301:6;6328:20;;:::i;:::-;6318:30;;6357:33;6385:4;6377:6;6357:33;:::i;:::-;6267:129;;;:::o;6402:311::-;6479:4;6569:18;6561:6;6558:30;6555:56;;;6591:18;;:::i;:::-;6555:56;6641:4;6633:6;6629:17;6621:25;;6701:4;6695;6691:15;6683:23;;6402:311;;;:::o;6719:117::-;6828:1;6825;6818:12;6859:710;6955:5;6980:81;6996:64;7053:6;6996:64;:::i;:::-;6980:81;:::i;:::-;6971:90;;7081:5;7110:6;7103:5;7096:21;7144:4;7137:5;7133:16;7126:23;;7197:4;7189:6;7185:17;7177:6;7173:30;7226:3;7218:6;7215:15;7212:122;;;7245:79;;:::i;:::-;7212:122;7360:6;7343:220;7377:6;7372:3;7369:15;7343:220;;;7452:3;7481:37;7514:3;7502:10;7481:37;:::i;:::-;7476:3;7469:50;7548:4;7543:3;7539:14;7532:21;;7419:144;7403:4;7398:3;7394:14;7387:21;;7343:220;;;7347:21;6961:608;;6859:710;;;;;:::o;7592:370::-;7663:5;7712:3;7705:4;7697:6;7693:17;7689:27;7679:122;;7720:79;;:::i;:::-;7679:122;7837:6;7824:20;7862:94;7952:3;7944:6;7937:4;7929:6;7925:17;7862:94;:::i;:::-;7853:103;;7669:293;7592:370;;;;:::o;7968:829::-;8070:6;8078;8086;8135:2;8123:9;8114:7;8110:23;8106:32;8103:119;;;8141:79;;:::i;:::-;8103:119;8289:1;8278:9;8274:17;8261:31;8319:18;8311:6;8308:30;8305:117;;;8341:79;;:::i;:::-;8305:117;8446:78;8516:7;8507:6;8496:9;8492:22;8446:78;:::i;:::-;8436:88;;8232:302;8573:2;8599:53;8644:7;8635:6;8624:9;8620:22;8599:53;:::i;:::-;8589:63;;8544:118;8701:2;8727:53;8772:7;8763:6;8752:9;8748:22;8727:53;:::i;:::-;8717:63;;8672:118;7968:829;;;;;:::o;8803:114::-;8870:6;8904:5;8898:12;8888:22;;8803:114;;;:::o;8923:184::-;9022:11;9056:6;9051:3;9044:19;9096:4;9091:3;9087:14;9072:29;;8923:184;;;;:::o;9113:132::-;9180:4;9203:3;9195:11;;9233:4;9228:3;9224:14;9216:22;;9113:132;;;:::o;9251:108::-;9328:24;9346:5;9328:24;:::i;:::-;9323:3;9316:37;9251:108;;:::o;9365:179::-;9434:10;9455:46;9497:3;9489:6;9455:46;:::i;:::-;9533:4;9528:3;9524:14;9510:28;;9365:179;;;;:::o;9550:113::-;9620:4;9652;9647:3;9643:14;9635:22;;9550:113;;;:::o;9699:732::-;9818:3;9847:54;9895:5;9847:54;:::i;:::-;9917:86;9996:6;9991:3;9917:86;:::i;:::-;9910:93;;10027:56;10077:5;10027:56;:::i;:::-;10106:7;10137:1;10122:284;10147:6;10144:1;10141:13;10122:284;;;10223:6;10217:13;10250:63;10309:3;10294:13;10250:63;:::i;:::-;10243:70;;10336:60;10389:6;10336:60;:::i;:::-;10326:70;;10182:224;10169:1;10166;10162:9;10157:14;;10122:284;;;10126:14;10422:3;10415:10;;9823:608;;;9699:732;;;;:::o;10437:373::-;10580:4;10618:2;10607:9;10603:18;10595:26;;10667:9;10661:4;10657:20;10653:1;10642:9;10638:17;10631:47;10695:108;10798:4;10789:6;10695:108;:::i;:::-;10687:116;;10437:373;;;;:::o;10816:329::-;10875:6;10924:2;10912:9;10903:7;10899:23;10895:32;10892:119;;;10930:79;;:::i;:::-;10892:119;11050:1;11075:53;11120:7;11111:6;11100:9;11096:22;11075:53;:::i;:::-;11065:63;;11021:117;10816:329;;;;:::o;11151:118::-;11238:24;11256:5;11238:24;:::i;:::-;11233:3;11226:37;11151:118;;:::o;11275:222::-;11368:4;11406:2;11395:9;11391:18;11383:26;;11419:71;11487:1;11476:9;11472:17;11463:6;11419:71;:::i;:::-;11275:222;;;;:::o;11503:143::-;11560:5;11591:6;11585:13;11576:22;;11607:33;11634:5;11607:33;:::i;:::-;11503:143;;;;:::o;11652:114::-;11707:7;11736:24;11754:5;11736:24;:::i;:::-;11725:35;;11652:114;;;:::o;11772:158::-;11863:42;11899:5;11863:42;:::i;:::-;11856:5;11853:53;11843:81;;11920:1;11917;11910:12;11843:81;11772:158;:::o;11936:179::-;12011:5;12042:6;12036:13;12027:22;;12058:51;12103:5;12058:51;:::i;:::-;11936:179;;;;:::o;12121:143::-;12178:5;12209:6;12203:13;12194:22;;12225:33;12252:5;12225:33;:::i;:::-;12121:143;;;;:::o;12270:856::-;12385:6;12393;12401;12409;12458:3;12446:9;12437:7;12433:23;12429:33;12426:120;;;12465:79;;:::i;:::-;12426:120;12585:1;12610:64;12666:7;12657:6;12646:9;12642:22;12610:64;:::i;:::-;12600:74;;12556:128;12723:2;12749:82;12823:7;12814:6;12803:9;12799:22;12749:82;:::i;:::-;12739:92;;12694:147;12880:2;12906:64;12962:7;12953:6;12942:9;12938:22;12906:64;:::i;:::-;12896:74;;12851:129;13019:2;13045:64;13101:7;13092:6;13081:9;13077:22;13045:64;:::i;:::-;13035:74;;12990:129;12270:856;;;;;;;:::o;13132:442::-;13281:4;13319:2;13308:9;13304:18;13296:26;;13332:71;13400:1;13389:9;13385:17;13376:6;13332:71;:::i;:::-;13413:72;13481:2;13470:9;13466:18;13457:6;13413:72;:::i;:::-;13495;13563:2;13552:9;13548:18;13539:6;13495:72;:::i;:::-;13132:442;;;;;;:::o;13580:351::-;13650:6;13699:2;13687:9;13678:7;13674:23;13670:32;13667:119;;;13705:79;;:::i;:::-;13667:119;13825:1;13850:64;13906:7;13897:6;13886:9;13882:22;13850:64;:::i;:::-;13840:74;;13796:128;13580:351;;;;:::o;13937:85::-;13982:7;14011:5;14000:16;;13937:85;;;:::o;14028:101::-;14064:7;14104:18;14097:5;14093:30;14082:41;;14028:101;;;:::o;14135:156::-;14192:9;14225:60;14242:42;14251:32;14277:5;14251:32;:::i;:::-;14242:42;:::i;:::-;14225:60;:::i;:::-;14212:73;;14135:156;;;:::o;14297:145::-;14391:44;14429:5;14391:44;:::i;:::-;14386:3;14379:57;14297:145;;:::o;14448:236::-;14548:4;14586:2;14575:9;14571:18;14563:26;;14599:78;14674:1;14663:9;14659:17;14650:6;14599:78;:::i;:::-;14448:236;;;;:::o;14690:180::-;14738:77;14735:1;14728:88;14835:4;14832:1;14825:15;14859:4;14856:1;14849:15" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "domainHashToRecord(bytes32)": "5b377fa2", + "initialize(address,address)": "485cc955", + "isVerifiedForDomainHash(bytes32,address,uint256)": "2019241b", + "isVerifiedForMultipleDomainHashes(bytes32[],address,uint256)": "929d1ac1", + "owner()": "8da5cb5b", + "pendingOwner()": "e30c3978", + "registry()": "7b103999", + "renounceOwnership()": "715018a6", + "setRegistry(address)": "a91ee0dc", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldRegistryAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRegistryAddress\",\"type\":\"address\"}],\"name\":\"RegistrySet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainHashToRecord\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lastOwnerSetTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastVerifierSetTime\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"isVerifiedForDomainHash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"domainHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"isVerifiedForMultipleDomainHashes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ISciRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRegistry\",\"type\":\"address\"}],\"name\":\"setRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This contract facilitates interaction with the SCI protocol, offering a simplified interface for apps and wallets. Apps and wallets can also directly interact with the Registry and verifiers directly if desired, bypassing this contract.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RegistrySet(address,address)\":{\"details\":\"Emitted when the Registry is changed.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"domainHashToRecord(bytes32)\":{\"details\":\"Returns info from the domain.\",\"params\":{\"domainHash\":\"The namehash of the domain.\"}},\"initialize(address,address)\":{\"details\":\"Initializes the SCI contract with the owner and registry address. Can only be called once during contract deployment.\",\"params\":{\"owner\":\"The owner of this contract.\",\"registryAddress\":\"The address of the registry to be used by the contract.\"}},\"isVerifiedForDomainHash(bytes32,address,uint256)\":{\"details\":\"Returns if the `contractAddress` deployed in the chain with id `chainId` is verified. to interact with the domain with namehash `domainHash`.\",\"params\":{\"chainId\":\"The id of the chain the contract is deployed in.\",\"contractAddress\":\"The address of the contract is being verified.\",\"domainHash\":\"The namehash of the domain the contract is interacting with\"},\"returns\":{\"_0\":\"a uint256 representing the time when the contract was verified. If the contract is not verified, it returns 0. Note: If there is no verifier set then it returns 0.\"}},\"isVerifiedForMultipleDomainHashes(bytes32[],address,uint256)\":{\"details\":\"Same as isVerifiedForDomainHash but for multiple domains.\",\"params\":{\"chainId\":\"The id of the chain the contract is deployed in.\",\"contractAddress\":\"The address of the contract is being verified.\",\"domainHashes\":\"An array of domain hashes.\"},\"returns\":{\"_0\":\"an array of uint256 representing the time when the contract was verified for each domain or 0 if it wasn't. Note: If there is no verifier set then it returns false for that `domainHash`.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setRegistry(address)\":{\"details\":\"Sets a new registry.\",\"params\":{\"newRegistry\":\"The address of the new SCI Registry. May emit a {RegistrySet} event.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"title\":\"SCI\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SCI.sol\":\"SCI\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xbca4a4f66d98028293dba695851d1b20d3e0ba2fff7453fb241f192fa3fc6b6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://013b3cfd9d1e34dad409c3b9a340860e8651e61cda509de33599fb5102f62fe7\",\"dweb:/ipfs/QmTVjDKofM9Nst8w8LAA3HHgi1eCnGYBpFb7Nbat71e2xz\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"contracts/SCI.sol\":{\"keccak256\":\"0x486ed93ef8338c9f88ae79953d291d017366f2f8a22fbf800dc7078e6d853808\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://eaa3fbe849b259b8c24870f6f46a2b9e2f01ae9bc7e814d328c137a5b951f618\",\"dweb:/ipfs/QmRzWJ5CPFMtEucFrjjp3RatNgtKE7injqvN9nQpsZG6EE\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 6794, + "contract": "contracts/SCI.sol:SCI", + "label": "registry", + "offset": 0, + "slot": "0", + "type": "t_contract(ISciRegistry)7088" + } + ], + "types": { + "t_contract(ISciRegistry)7088": { + "encoding": "inplace", + "label": "contract ISciRegistry", + "numberOfBytes": "20" + } + } + } + } + }, + "contracts/SciRegistry/ISciRegistry.sol": { + "ISciRegistry": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "registrar", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "DomainRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "msgSender", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "msgSender", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "contract IVerifier", + "name": "oldVerifier", + "type": "address" + }, + { + "indexed": true, + "internalType": "contract IVerifier", + "name": "newVerifie", + "type": "address" + } + ], + "name": "VerifierSet", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainHashToRecord", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + }, + { + "internalType": "uint256", + "name": "lastOwnerSetTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastIVerifierSetTime", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainVerifier", + "outputs": [ + { + "internalType": "contract IVerifier", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainVerifierSetTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isDomainOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "registerDomain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + } + ], + "name": "registerDomainWithVerifier", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + } + ], + "name": "setVerifier", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "domainHashToRecord(bytes32)": "5b377fa2", + "domainOwner(bytes32)": "d26cdd20", + "domainVerifier(bytes32)": "5a75199a", + "domainVerifierSetTime(bytes32)": "a2a6c0eb", + "isDomainOwner(bytes32,address)": "8023597e", + "registerDomain(address,bytes32)": "a8c00861", + "registerDomainWithVerifier(address,bytes32,address)": "dd738e6c", + "setVerifier(bytes32,address)": "a692b9ef" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registrar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"DomainRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"contract IVerifier\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IVerifier\",\"name\":\"newVerifie\",\"type\":\"address\"}],\"name\":\"VerifierSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainHashToRecord\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lastOwnerSetTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastIVerifierSetTime\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainVerifier\",\"outputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainVerifierSetTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDomainOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"registerDomain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"registerDomainWithVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"setVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This contract manages domain registration and verifiers. It uses role-based access control to allow only authorized accounts to register domains and update verifiers. The contract stores domain ownership and verifier information and allows domain owners to modify verifiers.\",\"events\":{\"DomainRegistered(address,address,bytes32)\":{\"details\":\"Emitted when a new `domain` with the `domainHash` is registered by the `owner`.\"},\"OwnerSet(address,bytes32,address,address)\":{\"details\":\"Emitted when the owner of a `domainHash` is set.\"},\"VerifierSet(address,bytes32,address,address)\":{\"details\":\"Emitted when the `owner` of the `domainHash` adds a `verifier`. Note: This will also be emitted when the verifier is changed.\"}},\"kind\":\"dev\",\"methods\":{\"domainHashToRecord(bytes32)\":{\"details\":\"Returns the owner, the IVerifier, lastOwnerSetTime and lastIVerifierSetTime for a given domainHash.\",\"params\":{\"domainHash\":\"The namehash of the domain.\"}},\"domainOwner(bytes32)\":{\"details\":\"Returns the owner of the domainHash.\",\"params\":{\"domainHash\":\"The namehash of the domain.\"},\"returns\":{\"_0\":\"The address of the owner or the ZERO_ADDRESS if the domain is not registered.\"}},\"domainVerifier(bytes32)\":{\"details\":\"Returns the IVerifier of the domainHash.\",\"params\":{\"domainHash\":\"The namehash of the domain.\"},\"returns\":{\"_0\":\"The address of the IVerifier or the ZERO_ADDRESS if the domain or the IVerifier are not registered.\"}},\"domainVerifierSetTime(bytes32)\":{\"details\":\"Returns the timestamp of the block where the IVerifier was set.\",\"params\":{\"domainHash\":\"The namehash of the domain.\"},\"returns\":{\"_0\":\"The timestamp of the block where the IVerifier was set or 0 if it wasn't.\"}},\"isDomainOwner(bytes32,address)\":{\"details\":\"Returns true if the account is the owner of the domainHash.\"},\"registerDomain(address,bytes32)\":{\"details\":\"Register a domain.\",\"params\":{\"domainHash\":\"The namehash of the domain being registered. Requirements: - Only valid Registrars must be able to call this function. May emit a {DomainRegistered} event.\",\"owner\":\"The owner of the domain.\"}},\"registerDomainWithVerifier(address,bytes32,address)\":{\"details\":\"Same as registerDomain but it also adds a IVerifier.\",\"params\":{\"domainHash\":\"The namehash of the domain being registered.\",\"owner\":\"The owner of the domain being registered.\",\"verifier\":\"The verifier that is being set for the domain. Requirements: - Only valid Registrars must be able to call this function. Note: Most of registrars should implement this function by sending the message sender as the owner to avoid other addresses changing or setting a malicous verifier. May emit a {DomainRegistered} and a {IVerifierAdded} events.\"}},\"setVerifier(bytes32,address)\":{\"details\":\"Sets a IVerifier to the domain hash.\",\"params\":{\"domainHash\":\"The namehash of the domain.\",\"verifier\":\"The address of the IVerifier contract. Requirements: - the caller must be the owner of the domain. May emit a {IVerifierAdded} event. Note: If you want to remove a IVerifier you can set it to the ZERO_ADDRESS.\"}}},\"title\":\"ISciRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SciRegistry/ISciRegistry.sol\":\"ISciRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/SciRegistry/SciRegistry.sol": { + "SciRegistry": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint48", + "name": "initialDelay", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "name": "AccessControlEnforcedDefaultAdminDelay", + "type": "error" + }, + { + "inputs": [], + "name": "AccessControlEnforcedDefaultAdminRules", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "defaultAdmin", + "type": "address" + } + ], + "name": "AccessControlInvalidDefaultAdmin", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "AccountIsNotDomainOwner", + "type": "error" + }, + { + "inputs": [], + "name": "EnforcedPause", + "type": "error" + }, + { + "inputs": [], + "name": "ExpectedPause", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "bits", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeCastOverflowedUintDowncast", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminDelayChangeCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "effectSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminDelayChangeScheduled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminTransferCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "acceptSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminTransferScheduled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "registrar", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "DomainRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "msgSender", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "msgSender", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "contract IVerifier", + "name": "oldVerifier", + "type": "address" + }, + { + "indexed": true, + "internalType": "contract IVerifier", + "name": "newVerifie", + "type": "address" + } + ], + "name": "VerifierSet", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PAUSER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTRAR_MANAGER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTRAR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "beginDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cancelDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + } + ], + "name": "changeDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelayIncreaseWait", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "nameHash", + "type": "bytes32" + } + ], + "name": "domainHashToRecord", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + }, + { + "internalType": "uint256", + "name": "ownerSetTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "verifierSetTime", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainVerifier", + "outputs": [ + { + "internalType": "contract IVerifier", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "domainVerifierSetTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isDomainOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "registerDomain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + } + ], + "name": "registerDomainWithVerifier", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract ISciRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "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": [], + "name": "rollbackDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "contract IVerifier", + "name": "verifier", + "type": "address" + } + ], + "name": "setVerifier", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1784": { + "entryPoint": null, + "id": 1784, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_3453": { + "entryPoint": null, + "id": 3453, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_6533": { + "entryPoint": null, + "id": 6533, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_7168": { + "entryPoint": null, + "id": 7168, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_grantRole_1449": { + "entryPoint": 752, + "id": 1449, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_grantRole_1970": { + "entryPoint": 413, + "id": 1970, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_msgSender_3401": { + "entryPoint": 405, + "id": 3401, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_setRoleAdmin_1410": { + "entryPoint": 1005, + "id": 1410, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setRoleAdmin_2026": { + "entryPoint": 630, + "id": 2026, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@defaultAdmin_2035": { + "entryPoint": 710, + "id": 2035, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getRoleAdmin_1321": { + "entryPoint": 1208, + "id": 1321, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@hasRole_1273": { + "entryPoint": 1102, + "id": 1273, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint48_fromMemory": { + "entryPoint": 1285, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint48_fromMemory": { + "entryPoint": 1306, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1401, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1416, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 1383, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1351, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint48": { + "entryPoint": 1244, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 1239, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint48": { + "entryPoint": 1262, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1648:37", + "nodeType": "YulBlock", + "src": "0:1648:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "378:53:37", + "nodeType": "YulBlock", + "src": "378:53:37", + "statements": [ + { + "nativeSrc": "388:37:37", + "nodeType": "YulAssignment", + "src": "388:37:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "403:5:37", + "nodeType": "YulIdentifier", + "src": "403:5:37" + }, + { + "kind": "number", + "nativeSrc": "410:14:37", + "nodeType": "YulLiteral", + "src": "410:14:37", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "399:3:37", + "nodeType": "YulIdentifier", + "src": "399:3:37" + }, + "nativeSrc": "399:26:37", + "nodeType": "YulFunctionCall", + "src": "399:26:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "388:7:37", + "nodeType": "YulIdentifier", + "src": "388:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint48", + "nativeSrc": "334:97:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "360:5:37", + "nodeType": "YulTypedName", + "src": "360:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "370:7:37", + "nodeType": "YulTypedName", + "src": "370:7:37", + "type": "" + } + ], + "src": "334:97:37" + }, + { + "body": { + "nativeSrc": "479:78:37", + "nodeType": "YulBlock", + "src": "479:78:37", + "statements": [ + { + "body": { + "nativeSrc": "535:16:37", + "nodeType": "YulBlock", + "src": "535:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "544:1:37", + "nodeType": "YulLiteral", + "src": "544:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "547:1:37", + "nodeType": "YulLiteral", + "src": "547:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "537:6:37", + "nodeType": "YulIdentifier", + "src": "537:6:37" + }, + "nativeSrc": "537:12:37", + "nodeType": "YulFunctionCall", + "src": "537:12:37" + }, + "nativeSrc": "537:12:37", + "nodeType": "YulExpressionStatement", + "src": "537:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "502:5:37", + "nodeType": "YulIdentifier", + "src": "502:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "526:5:37", + "nodeType": "YulIdentifier", + "src": "526:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "509:16:37", + "nodeType": "YulIdentifier", + "src": "509:16:37" + }, + "nativeSrc": "509:23:37", + "nodeType": "YulFunctionCall", + "src": "509:23:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "499:2:37", + "nodeType": "YulIdentifier", + "src": "499:2:37" + }, + "nativeSrc": "499:34:37", + "nodeType": "YulFunctionCall", + "src": "499:34:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "492:6:37", + "nodeType": "YulIdentifier", + "src": "492:6:37" + }, + "nativeSrc": "492:42:37", + "nodeType": "YulFunctionCall", + "src": "492:42:37" + }, + "nativeSrc": "489:62:37", + "nodeType": "YulIf", + "src": "489:62:37" + } + ] + }, + "name": "validator_revert_t_uint48", + "nativeSrc": "437:120:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "472:5:37", + "nodeType": "YulTypedName", + "src": "472:5:37", + "type": "" + } + ], + "src": "437:120:37" + }, + { + "body": { + "nativeSrc": "625:79:37", + "nodeType": "YulBlock", + "src": "625:79:37", + "statements": [ + { + "nativeSrc": "635:22:37", + "nodeType": "YulAssignment", + "src": "635:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "650:6:37", + "nodeType": "YulIdentifier", + "src": "650:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "644:5:37", + "nodeType": "YulIdentifier", + "src": "644:5:37" + }, + "nativeSrc": "644:13:37", + "nodeType": "YulFunctionCall", + "src": "644:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "635:5:37", + "nodeType": "YulIdentifier", + "src": "635:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "692:5:37", + "nodeType": "YulIdentifier", + "src": "692:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_uint48", + "nativeSrc": "666:25:37", + "nodeType": "YulIdentifier", + "src": "666:25:37" + }, + "nativeSrc": "666:32:37", + "nodeType": "YulFunctionCall", + "src": "666:32:37" + }, + "nativeSrc": "666:32:37", + "nodeType": "YulExpressionStatement", + "src": "666:32:37" + } + ] + }, + "name": "abi_decode_t_uint48_fromMemory", + "nativeSrc": "563:141:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "603:6:37", + "nodeType": "YulTypedName", + "src": "603:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "611:3:37", + "nodeType": "YulTypedName", + "src": "611:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "619:5:37", + "nodeType": "YulTypedName", + "src": "619:5:37", + "type": "" + } + ], + "src": "563:141:37" + }, + { + "body": { + "nativeSrc": "786:273:37", + "nodeType": "YulBlock", + "src": "786:273:37", + "statements": [ + { + "body": { + "nativeSrc": "832:83:37", + "nodeType": "YulBlock", + "src": "832:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "834:77:37", + "nodeType": "YulIdentifier", + "src": "834:77:37" + }, + "nativeSrc": "834:79:37", + "nodeType": "YulFunctionCall", + "src": "834:79:37" + }, + "nativeSrc": "834:79:37", + "nodeType": "YulExpressionStatement", + "src": "834:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "807:7:37", + "nodeType": "YulIdentifier", + "src": "807:7:37" + }, + { + "name": "headStart", + "nativeSrc": "816:9:37", + "nodeType": "YulIdentifier", + "src": "816:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "803:3:37", + "nodeType": "YulIdentifier", + "src": "803:3:37" + }, + "nativeSrc": "803:23:37", + "nodeType": "YulFunctionCall", + "src": "803:23:37" + }, + { + "kind": "number", + "nativeSrc": "828:2:37", + "nodeType": "YulLiteral", + "src": "828:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "799:3:37", + "nodeType": "YulIdentifier", + "src": "799:3:37" + }, + "nativeSrc": "799:32:37", + "nodeType": "YulFunctionCall", + "src": "799:32:37" + }, + "nativeSrc": "796:119:37", + "nodeType": "YulIf", + "src": "796:119:37" + }, + { + "nativeSrc": "925:127:37", + "nodeType": "YulBlock", + "src": "925:127:37", + "statements": [ + { + "nativeSrc": "940:15:37", + "nodeType": "YulVariableDeclaration", + "src": "940:15:37", + "value": { + "kind": "number", + "nativeSrc": "954:1:37", + "nodeType": "YulLiteral", + "src": "954:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "944:6:37", + "nodeType": "YulTypedName", + "src": "944:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "969:73:37", + "nodeType": "YulAssignment", + "src": "969:73:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1014:9:37", + "nodeType": "YulIdentifier", + "src": "1014:9:37" + }, + { + "name": "offset", + "nativeSrc": "1025:6:37", + "nodeType": "YulIdentifier", + "src": "1025:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1010:3:37", + "nodeType": "YulIdentifier", + "src": "1010:3:37" + }, + "nativeSrc": "1010:22:37", + "nodeType": "YulFunctionCall", + "src": "1010:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1034:7:37", + "nodeType": "YulIdentifier", + "src": "1034:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint48_fromMemory", + "nativeSrc": "979:30:37", + "nodeType": "YulIdentifier", + "src": "979:30:37" + }, + "nativeSrc": "979:63:37", + "nodeType": "YulFunctionCall", + "src": "979:63:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "969:6:37", + "nodeType": "YulIdentifier", + "src": "969:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint48_fromMemory", + "nativeSrc": "710:349:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "756:9:37", + "nodeType": "YulTypedName", + "src": "756:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "767:7:37", + "nodeType": "YulTypedName", + "src": "767:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "779:6:37", + "nodeType": "YulTypedName", + "src": "779:6:37", + "type": "" + } + ], + "src": "710:349:37" + }, + { + "body": { + "nativeSrc": "1110:81:37", + "nodeType": "YulBlock", + "src": "1110:81:37", + "statements": [ + { + "nativeSrc": "1120:65:37", + "nodeType": "YulAssignment", + "src": "1120:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1135:5:37", + "nodeType": "YulIdentifier", + "src": "1135:5:37" + }, + { + "kind": "number", + "nativeSrc": "1142:42:37", + "nodeType": "YulLiteral", + "src": "1142:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1131:3:37", + "nodeType": "YulIdentifier", + "src": "1131:3:37" + }, + "nativeSrc": "1131:54:37", + "nodeType": "YulFunctionCall", + "src": "1131:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1120:7:37", + "nodeType": "YulIdentifier", + "src": "1120:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "1065:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1092:5:37", + "nodeType": "YulTypedName", + "src": "1092:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1102:7:37", + "nodeType": "YulTypedName", + "src": "1102:7:37", + "type": "" + } + ], + "src": "1065:126:37" + }, + { + "body": { + "nativeSrc": "1242:51:37", + "nodeType": "YulBlock", + "src": "1242:51:37", + "statements": [ + { + "nativeSrc": "1252:35:37", + "nodeType": "YulAssignment", + "src": "1252:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1281:5:37", + "nodeType": "YulIdentifier", + "src": "1281:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "1263:17:37", + "nodeType": "YulIdentifier", + "src": "1263:17:37" + }, + "nativeSrc": "1263:24:37", + "nodeType": "YulFunctionCall", + "src": "1263:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1252:7:37", + "nodeType": "YulIdentifier", + "src": "1252:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "1197:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1224:5:37", + "nodeType": "YulTypedName", + "src": "1224:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1234:7:37", + "nodeType": "YulTypedName", + "src": "1234:7:37", + "type": "" + } + ], + "src": "1197:96:37" + }, + { + "body": { + "nativeSrc": "1364:53:37", + "nodeType": "YulBlock", + "src": "1364:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1381:3:37", + "nodeType": "YulIdentifier", + "src": "1381:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1404:5:37", + "nodeType": "YulIdentifier", + "src": "1404:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1386:17:37", + "nodeType": "YulIdentifier", + "src": "1386:17:37" + }, + "nativeSrc": "1386:24:37", + "nodeType": "YulFunctionCall", + "src": "1386:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1374:6:37", + "nodeType": "YulIdentifier", + "src": "1374:6:37" + }, + "nativeSrc": "1374:37:37", + "nodeType": "YulFunctionCall", + "src": "1374:37:37" + }, + "nativeSrc": "1374:37:37", + "nodeType": "YulExpressionStatement", + "src": "1374:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1299:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1352:5:37", + "nodeType": "YulTypedName", + "src": "1352:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1359:3:37", + "nodeType": "YulTypedName", + "src": "1359:3:37", + "type": "" + } + ], + "src": "1299:118:37" + }, + { + "body": { + "nativeSrc": "1521:124:37", + "nodeType": "YulBlock", + "src": "1521:124:37", + "statements": [ + { + "nativeSrc": "1531:26:37", + "nodeType": "YulAssignment", + "src": "1531:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1543:9:37", + "nodeType": "YulIdentifier", + "src": "1543:9:37" + }, + { + "kind": "number", + "nativeSrc": "1554:2:37", + "nodeType": "YulLiteral", + "src": "1554:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1539:3:37", + "nodeType": "YulIdentifier", + "src": "1539:3:37" + }, + "nativeSrc": "1539:18:37", + "nodeType": "YulFunctionCall", + "src": "1539:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1531:4:37", + "nodeType": "YulIdentifier", + "src": "1531:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1611:6:37", + "nodeType": "YulIdentifier", + "src": "1611:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1624:9:37", + "nodeType": "YulIdentifier", + "src": "1624:9:37" + }, + { + "kind": "number", + "nativeSrc": "1635:1:37", + "nodeType": "YulLiteral", + "src": "1635:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1620:3:37", + "nodeType": "YulIdentifier", + "src": "1620:3:37" + }, + "nativeSrc": "1620:17:37", + "nodeType": "YulFunctionCall", + "src": "1620:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1567:43:37", + "nodeType": "YulIdentifier", + "src": "1567:43:37" + }, + "nativeSrc": "1567:71:37", + "nodeType": "YulFunctionCall", + "src": "1567:71:37" + }, + "nativeSrc": "1567:71:37", + "nodeType": "YulExpressionStatement", + "src": "1567:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "1423:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1493:9:37", + "nodeType": "YulTypedName", + "src": "1493:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1505:6:37", + "nodeType": "YulTypedName", + "src": "1505:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1516:4:37", + "nodeType": "YulTypedName", + "src": "1516:4:37", + "type": "" + } + ], + "src": "1423:222:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint48(value) -> cleaned {\n cleaned := and(value, 0xffffffffffff)\n }\n\n function validator_revert_t_uint48(value) {\n if iszero(eq(value, cleanup_t_uint48(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint48_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint48(value)\n }\n\n function abi_decode_tuple_t_uint48_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint48_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a060405234801561001057600080fd5b5060405161292d38038061292d8339818101604052810190610032919061051a565b308161004261019560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b45760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100ab9190610588565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100ec6000801b8261019d60201b60201c565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506000600360006101000a81548160ff02191690831515021790555061018f7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092387f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750961027660201b60201c565b506105a3565b600033905090565b60008060001b830361025e57600073ffffffffffffffffffffffffffffffffffffffff166101cf6102c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461021c576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61026e83836102f060201b60201c565b905092915050565b6000801b82036102b2576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102c282826103ed60201b60201c565b5050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610302838361044e60201b60201c565b6103e257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061037f61019560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506103e7565b600090505b92915050565b60006103fe836104b860201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806000838152602001908152602001600020600101549050919050565b600080fd5b600065ffffffffffff82169050919050565b6104f7816104dc565b811461050257600080fd5b50565b600081519050610514816104ee565b92915050565b6000602082840312156105305761052f6104d7565b5b600061053e84828501610505565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061057282610547565b9050919050565b61058281610567565b82525050565b600060208201905061059d6000830184610579565b92915050565b6080516123686105c560003960008181610924015261115a01526123686000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ca7565b6105ff565b6040516102279190611cef565b60405180910390f35b610238610679565b6040516102459190611d2b565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611d7c565b61069c565b60405161027f9190611db8565b60405180910390f35b6102a2600480360381019061029d9190611e31565b6106bb565b005b6102be60048036038101906102b99190611e31565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611d7c565b610827565b6040516102f19190611ed0565b60405180910390f35b610314600480360381019061030f9190611d7c565b610867565b6040516103249493929190611f13565b60405180910390f35b6103356108d7565b6040516103429190611cef565b60405180910390f35b61036560048036038101906103609190611f58565b6108ee565b005b610381600480360381019061037c9190611fb1565b610908565b005b61038b610922565b6040516103989190611fff565b60405180910390f35b6103bb60048036038101906103b69190611e31565b610946565b6040516103c89190611cef565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061201a565b60405180910390f35b6104016109e6565b60405161040e919061201a565b60405180910390f35b610431600480360381019061042c9190611e31565b6109f5565b60405161043e9190611cef565b60405180910390f35b61044f610a5f565b60405161045d929190612035565b60405180910390f35b61046e610abf565b60405161047b9190611db8565b60405180910390f35b61049e60048036038101906104999190611d7c565b610ac6565b6040516104ab919061205e565b60405180910390f35b6104ce60048036038101906104c991906120b7565b610ae6565b005b6104ea60048036038101906104e591906120f7565b610b09565b005b6104f4610b17565b6040516105019190611db8565b60405180910390f35b610512610b3b565b60405161051f9190611d2b565b60405180910390f35b610530610ba9565b005b61053a610c3f565b604051610548929190612137565b60405180910390f35b61056b60048036038101906105669190611d7c565b610c82565b604051610578919061201a565b60405180910390f35b61059b60048036038101906105969190611e31565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612160565b610d24565b005b6105cb610d3d565b6040516105d89190611db8565b60405180910390f35b6105e9610d61565b6040516105f69190611db8565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d2b565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061201a565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061201a565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b61101191906121e2565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d2b565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d91906121e2565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612035565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061201a565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611db8565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612231565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef600000000000000000000000000000000000000000000000000000000815260040161124392919061225e565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061201a565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d2b565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c492919061225e565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122cf565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b291906122f8565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061201a565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000818310611c405781611c42565b825b905092915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c8481611c4f565b8114611c8f57600080fd5b50565b600081359050611ca181611c7b565b92915050565b600060208284031215611cbd57611cbc611c4a565b5b6000611ccb84828501611c92565b91505092915050565b60008115159050919050565b611ce981611cd4565b82525050565b6000602082019050611d046000830184611ce0565b92915050565b600065ffffffffffff82169050919050565b611d2581611d0a565b82525050565b6000602082019050611d406000830184611d1c565b92915050565b6000819050919050565b611d5981611d46565b8114611d6457600080fd5b50565b600081359050611d7681611d50565b92915050565b600060208284031215611d9257611d91611c4a565b5b6000611da084828501611d67565b91505092915050565b611db281611d46565b82525050565b6000602082019050611dcd6000830184611da9565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dfe82611dd3565b9050919050565b611e0e81611df3565b8114611e1957600080fd5b50565b600081359050611e2b81611e05565b92915050565b60008060408385031215611e4857611e47611c4a565b5b6000611e5685828601611d67565b9250506020611e6785828601611e1c565b9150509250929050565b6000819050919050565b6000611e96611e91611e8c84611dd3565b611e71565b611dd3565b9050919050565b6000611ea882611e7b565b9050919050565b6000611eba82611e9d565b9050919050565b611eca81611eaf565b82525050565b6000602082019050611ee56000830184611ec1565b92915050565b611ef481611df3565b82525050565b6000819050919050565b611f0d81611efa565b82525050565b6000608082019050611f286000830187611eeb565b611f356020830186611ec1565b611f426040830185611f04565b611f4f6060830184611f04565b95945050505050565b600060208284031215611f6e57611f6d611c4a565b5b6000611f7c84828501611e1c565b91505092915050565b611f8e81611d0a565b8114611f9957600080fd5b50565b600081359050611fab81611f85565b92915050565b600060208284031215611fc757611fc6611c4a565b5b6000611fd584828501611f9c565b91505092915050565b6000611fe982611e9d565b9050919050565b611ff981611fde565b82525050565b60006020820190506120146000830184611ff0565b92915050565b600060208201905061202f6000830184611eeb565b92915050565b600060408201905061204a6000830185611d1c565b6120576020830184611d1c565b9392505050565b60006020820190506120736000830184611f04565b92915050565b600061208482611df3565b9050919050565b61209481612079565b811461209f57600080fd5b50565b6000813590506120b18161208b565b92915050565b600080604083850312156120ce576120cd611c4a565b5b60006120dc85828601611d67565b92505060206120ed858286016120a2565b9150509250929050565b6000806040838503121561210e5761210d611c4a565b5b600061211c85828601611e1c565b925050602061212d85828601611d67565b9150509250929050565b600060408201905061214c6000830185611eeb565b6121596020830184611d1c565b9392505050565b60008060006060848603121561217957612178611c4a565b5b600061218786828701611e1c565b935050602061219886828701611d67565b92505060406121a9868287016120a2565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121ed82611d0a565b91506121f883611d0a565b9250828201905065ffffffffffff811115612216576122156121b3565b5b92915050565b60008151905061222b81611e05565b92915050565b60006020828403121561224757612246611c4a565b5b60006122558482850161221c565b91505092915050565b60006040820190506122736000830185611eeb565b6122806020830184611da9565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122b96122b46122af84612287565b611e71565b612291565b9050919050565b6122c98161229e565b82525050565b60006040820190506122e460008301856122c0565b6122f16020830184611f04565b9392505050565b600061230382611d0a565b915061230e83611d0a565b9250828203905065ffffffffffff81111561232c5761232b6121b3565b5b9291505056fea264697066735822122045b9e71aa8dc2a139bb98a453175d418f82bc5b62b4236ce56fe6b30a9dfffc964736f6c634300081c0033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x292D CODESIZE SUB DUP1 PUSH2 0x292D DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x51A JUMP JUMPDEST ADDRESS DUP2 PUSH2 0x42 PUSH2 0x195 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0x588 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xEC PUSH1 0x0 DUP1 SHL DUP3 PUSH2 0x19D PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x18F PUSH32 0xEDCC084D3DCD65A1F7F23C65C46722FACA6953D28E43150A467CF43E5C309238 PUSH32 0x3AE1C506296743D7E3D03C7C7FBC7159C94706BB478D44FE35E75190455A7509 PUSH2 0x276 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0x25E JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1CF PUSH2 0x2C6 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x21C JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x26E DUP4 DUP4 PUSH2 0x2F0 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x2B2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2C2 DUP3 DUP3 PUSH2 0x3ED PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x302 DUP4 DUP4 PUSH2 0x44E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x3E2 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x37F PUSH2 0x195 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x3E7 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FE DUP4 PUSH2 0x4B8 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP2 DUP2 DUP5 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4F7 DUP2 PUSH2 0x4DC JUMP JUMPDEST DUP2 EQ PUSH2 0x502 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x514 DUP2 PUSH2 0x4EE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x530 JUMPI PUSH2 0x52F PUSH2 0x4D7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x53E DUP5 DUP3 DUP6 ADD PUSH2 0x505 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x572 DUP3 PUSH2 0x547 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x582 DUP2 PUSH2 0x567 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x59D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x579 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x2368 PUSH2 0x5C5 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x924 ADD MSTORE PUSH2 0x115A ADD MSTORE PUSH2 0x2368 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1FB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x11A JUMPI DUP1 PUSH4 0xCC8463C8 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x581 JUMPI DUP1 PUSH4 0xD602B9FD EQ PUSH2 0x59D JUMPI DUP1 PUSH4 0xDD738E6C EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xE63AB1E9 EQ PUSH2 0x5C3 JUMPI DUP1 PUSH4 0xF68E9553 EQ PUSH2 0x5E1 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xCC8463C8 EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0xCEFC1429 EQ PUSH2 0x528 JUMPI DUP1 PUSH4 0xCF6EEFB7 EQ PUSH2 0x532 JUMPI DUP1 PUSH4 0xD26CDD20 EQ PUSH2 0x551 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xA2A6C0EB GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xA2A6C0EB EQ PUSH2 0x484 JUMPI DUP1 PUSH4 0xA692B9EF EQ PUSH2 0x4B4 JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0xBE8CD266 EQ PUSH2 0x4EC JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3F9 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x417 JUMPI DUP1 PUSH4 0xA1EDA53C EQ PUSH2 0x447 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x466 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x5B377FA2 GT PUSH2 0x192 JUMPI DUP1 PUSH4 0x7B103999 GT PUSH2 0x161 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x383 JUMPI DUP1 PUSH4 0x8023597E EQ PUSH2 0x3A1 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x3D1 JUMPI DUP1 PUSH4 0x84EF8FFC EQ PUSH2 0x3DB JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x5B377FA2 EQ PUSH2 0x2FA JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x634E93DA EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0x649A5EC7 EQ PUSH2 0x367 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x1CE JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x5A75199A EQ PUSH2 0x2CA JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x22D63FB EQ PUSH2 0x230 JUMPI DUP1 PUSH4 0xAA6220B EQ PUSH2 0x24E JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x258 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1CA7 JUMP JUMPDEST PUSH2 0x5FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x227 SWAP2 SWAP1 PUSH2 0x1CEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x238 PUSH2 0x679 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x245 SWAP2 SWAP1 PUSH2 0x1D2B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x256 PUSH2 0x684 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x272 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0x69C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29D SWAP2 SWAP1 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0x6DD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C8 PUSH2 0x7F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2E4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2DF SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0x1ED0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x314 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30F SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0x867 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F13 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x335 PUSH2 0x8D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x342 SWAP2 SWAP1 PUSH2 0x1CEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x365 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x1F58 JUMP JUMPDEST PUSH2 0x8EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x381 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x1FB1 JUMP JUMPDEST PUSH2 0x908 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x38B PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x398 SWAP2 SWAP1 PUSH2 0x1FFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3BB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B6 SWAP2 SWAP1 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0x946 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x1CEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D9 PUSH2 0x987 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E3 PUSH2 0x9BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F0 SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x401 PUSH2 0x9E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40E SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x431 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43E SWAP2 SWAP1 PUSH2 0x1CEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x44F PUSH2 0xA5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45D SWAP3 SWAP2 SWAP1 PUSH2 0x2035 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x46E PUSH2 0xABF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x47B SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x49E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x499 SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0xAC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x205E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C9 SWAP2 SWAP1 PUSH2 0x20B7 JUMP JUMPDEST PUSH2 0xAE6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4EA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x20F7 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F4 PUSH2 0xB17 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x501 SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x512 PUSH2 0xB3B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x1D2B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x530 PUSH2 0xBA9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x53A PUSH2 0xC3F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x548 SWAP3 SWAP2 SWAP1 PUSH2 0x2137 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x56B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x566 SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0xC82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x578 SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x59B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x596 SWAP2 SWAP1 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0xCC2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5A5 PUSH2 0xD0C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5BC SWAP2 SWAP1 PUSH2 0x2160 JUMP JUMPDEST PUSH2 0xD24 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5CB PUSH2 0xD3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D8 SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5E9 PUSH2 0xD61 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5F6 SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x3149878600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x672 JUMPI POP PUSH2 0x671 DUP3 PUSH2 0xD85 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x69780 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x691 DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x699 PUSH2 0xE13 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6C4 DUP3 PUSH2 0x69C JUMP JUMPDEST PUSH2 0x6CD DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x6D7 DUP4 DUP4 PUSH2 0xE20 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 EQ DUP1 ISZERO PUSH2 0x721 JUMPI POP PUSH2 0x6F2 PUSH2 0x9BC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x7E4 JUMPI PUSH1 0x0 DUP1 PUSH2 0x731 PUSH2 0xC3F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x777 JUMPI POP PUSH2 0x775 DUP2 PUSH2 0xEED JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x788 JUMPI POP PUSH2 0x786 DUP2 PUSH2 0xF02 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x7CA JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C1 SWAP2 SWAP1 PUSH2 0x1D2B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMPDEST PUSH2 0x7EE DUP3 DUP3 PUSH2 0xF16 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x65D7A28E3265B37A6474929F336521B332C1681B933F6CB9F3376673440D862A PUSH2 0x81C DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x824 PUSH2 0xF91 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x8FB DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x904 DUP3 PUSH2 0xFF4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x915 DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x91E DUP3 PUSH2 0x106F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x968 DUP5 PUSH2 0xC82 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x65D7A28E3265B37A6474929F336521B332C1681B933F6CB9F3376673440D862A PUSH2 0x9B1 DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x9B9 PUSH2 0x10D6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9F0 PUSH2 0x9BC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xA82 DUP2 PUSH2 0xEED JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA94 JUMPI POP PUSH2 0xA92 DUP2 PUSH2 0xF02 JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0xAA0 JUMPI PUSH1 0x0 DUP1 PUSH2 0xAB7 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAEE PUSH2 0x1139 JUMP JUMPDEST DUP3 PUSH2 0xAF9 DUP3 DUP3 PUSH2 0x1141 JUMP JUMPDEST PUSH2 0xB03 DUP5 DUP5 PUSH2 0x1250 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xB13 DUP3 DUP3 PUSH2 0x1375 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x3AE1C506296743D7E3D03C7C7FBC7159C94706BB478D44FE35E75190455A7509 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xB5E DUP2 PUSH2 0xEED JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB6F JUMPI POP PUSH2 0xB6E DUP2 PUSH2 0xF02 JUMP JUMPDEST JUMPDEST PUSH2 0xB8D JUMPI PUSH1 0x1 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0xBA3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB3 PUSH2 0xC3F JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xBD5 PUSH2 0x1139 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC34 JUMPI PUSH2 0xBF8 PUSH2 0x1139 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC2B SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC3C PUSH2 0x1418 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0xCFE JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD08 DUP3 DUP3 PUSH2 0x14E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0xD19 DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0xD21 PUSH2 0x1509 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xD2E DUP4 DUP4 PUSH2 0x1375 JUMP JUMPDEST PUSH2 0xD38 DUP3 DUP3 PUSH2 0x1250 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x65D7A28E3265B37A6474929F336521B332C1681B933F6CB9F3376673440D862A DUP2 JUMP JUMPDEST PUSH32 0xEDCC084D3DCD65A1F7F23C65C46722FACA6953D28E43150A467CF43E5C309238 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xDF8 JUMPI POP PUSH2 0xDF7 DUP3 PUSH2 0x1516 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE10 DUP2 PUSH2 0xE0B PUSH2 0x1139 JUMP JUMPDEST PUSH2 0x1580 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE1E PUSH1 0x0 DUP1 PUSH2 0x15D1 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0xEDB JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE4C PUSH2 0x9BC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xE99 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0xEE5 DUP4 DUP4 PUSH2 0x16C1 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH6 0xFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP DUP3 PUSH6 0xFFFFFFFFFFFF AND LT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF1E PUSH2 0x1139 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF82 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF8C DUP3 DUP3 PUSH2 0x17B2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xF99 PUSH2 0x1835 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH2 0xFDD PUSH2 0x1139 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFEA SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFE PUSH2 0xB3B JUMP JUMPDEST PUSH2 0x1007 TIMESTAMP PUSH2 0x1875 JUMP JUMPDEST PUSH2 0x1011 SWAP2 SWAP1 PUSH2 0x21E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x101D DUP3 DUP3 PUSH2 0x18CF JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3377DC44241E779DD06AFAB5B788A35CA5F3B778836E2990BDB26A2A4B2E5ED6 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1063 SWAP2 SWAP1 PUSH2 0x1D2B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x107A DUP3 PUSH2 0x1982 JUMP JUMPDEST PUSH2 0x1083 TIMESTAMP PUSH2 0x1875 JUMP JUMPDEST PUSH2 0x108D SWAP2 SWAP1 PUSH2 0x21E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x1099 DUP3 DUP3 PUSH2 0x15D1 JUMP JUMPDEST PUSH32 0xF1038C18CF84A56E432FDBFAF746924B7EA511DFE03A6506A0CEBA4888788D9B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x10CA SWAP3 SWAP2 SWAP1 PUSH2 0x2035 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x10DE PUSH2 0x19E1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x1122 PUSH2 0x1139 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x112F SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD26CDD20 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11B1 SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11F2 SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x124C JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x2EBB0EF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1243 SWAP3 SWAP2 SWAP1 PUSH2 0x225E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1258 PUSH2 0x19E1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xC485A79936C258FD12FEF44DD3DE8D3069F7A6386C10E58329849408C91BBCD2 PUSH2 0x135B PUSH2 0x1139 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1368 SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH32 0xEDCC084D3DCD65A1F7F23C65C46722FACA6953D28E43150A467CF43E5C309238 PUSH2 0x139F DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x13A7 PUSH2 0x19E1 JUMP JUMPDEST PUSH2 0x13B1 DUP3 DUP5 PUSH2 0x1A22 JUMP JUMPDEST DUP2 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13D1 PUSH2 0x1139 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFB904AC70CCBE99B850406BF60ADA29496703558524D72BCB9E54B76D1040A63 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1423 PUSH2 0xC3F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1430 DUP2 PUSH2 0xEED JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1442 JUMPI POP PUSH2 0x1440 DUP2 PUSH2 0xF02 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1484 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x147B SWAP2 SWAP1 PUSH2 0x1D2B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1498 PUSH1 0x0 DUP1 SHL PUSH2 0x1493 PUSH2 0x9BC JUMP JUMPDEST PUSH2 0x17B2 JUMP JUMPDEST POP PUSH2 0x14A6 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0xE20 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x14F0 DUP3 PUSH2 0x69C JUMP JUMPDEST PUSH2 0x14F9 DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x1503 DUP4 DUP4 PUSH2 0x17B2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1514 PUSH1 0x0 DUP1 PUSH2 0x18CF JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x158A DUP3 DUP3 PUSH2 0x9F5 JUMP JUMPDEST PUSH2 0x15CD JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15C4 SWAP3 SWAP2 SWAP1 PUSH2 0x225E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x15F3 DUP2 PUSH2 0xEED JUMP JUMPDEST ISZERO PUSH2 0x1672 JUMPI PUSH2 0x1601 DUP2 PUSH2 0xF02 JUMP JUMPDEST ISZERO PUSH2 0x1644 JUMPI PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x1671 JUMP JUMPDEST PUSH32 0x2B1FA2EDAFE6F7B9E97C1A9E0C3660E645BEB2DCAA2D45BDBF9BEAF5472E1EC5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16CD DUP4 DUP4 PUSH2 0x9F5 JUMP JUMPDEST PUSH2 0x17A7 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1744 PUSH2 0x1139 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x17AC JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 EQ DUP1 ISZERO PUSH2 0x17F8 JUMPI POP PUSH2 0x17C9 PUSH2 0x9BC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x1823 JUMPI PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE JUMPDEST PUSH2 0x182D DUP4 DUP4 PUSH2 0x1B3F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x183D PUSH2 0x8D7 JUMP JUMPDEST PUSH2 0x1873 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8DFC202B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP1 AND DUP3 GT ISZERO PUSH2 0x18C7 JUMPI PUSH1 0x30 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DFCC65000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18BE SWAP3 SWAP2 SWAP1 PUSH2 0x22CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18D9 PUSH2 0xC3F JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x194B DUP2 PUSH2 0xEED JUMP JUMPDEST ISZERO PUSH2 0x197D JUMPI PUSH32 0x8886EBFC4259ABDBC16601DD8FB5678E54878F47B3C34836CFC51154A9605109 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x198D PUSH2 0xB3B JUMP JUMPDEST SWAP1 POP DUP1 PUSH6 0xFFFFFFFFFFFF AND DUP4 PUSH6 0xFFFFFFFFFFFF AND GT PUSH2 0x19B7 JUMPI DUP3 DUP2 PUSH2 0x19B2 SWAP2 SWAP1 PUSH2 0x22F8 JUMP JUMPDEST PUSH2 0x19D9 JUMP JUMPDEST PUSH2 0x19D8 DUP4 PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x19CB PUSH2 0x679 JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19E9 PUSH2 0x8D7 JUMP JUMPDEST ISZERO PUSH2 0x1A20 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD93C066500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xC4556710B10078AAE76DBDF4AD5EA256F74909069BD8AF417C5C2AEAC18EB288 PUSH2 0x1B25 PUSH2 0x1139 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B32 SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B4B DUP4 DUP4 PUSH2 0x9F5 JUMP JUMPDEST ISZERO PUSH2 0x1C26 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1BC3 PUSH2 0x1139 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1C2B JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1C40 JUMPI DUP2 PUSH2 0x1C42 JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C84 DUP2 PUSH2 0x1C4F JUMP JUMPDEST DUP2 EQ PUSH2 0x1C8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1CA1 DUP2 PUSH2 0x1C7B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CBD JUMPI PUSH2 0x1CBC PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CCB DUP5 DUP3 DUP6 ADD PUSH2 0x1C92 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CE9 DUP2 PUSH2 0x1CD4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D04 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1CE0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D25 DUP2 PUSH2 0x1D0A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D40 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D59 DUP2 PUSH2 0x1D46 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D76 DUP2 PUSH2 0x1D50 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D92 JUMPI PUSH2 0x1D91 PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DA0 DUP5 DUP3 DUP6 ADD PUSH2 0x1D67 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1DB2 DUP2 PUSH2 0x1D46 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DCD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DA9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DFE DUP3 PUSH2 0x1DD3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E0E DUP2 PUSH2 0x1DF3 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E2B DUP2 PUSH2 0x1E05 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E48 JUMPI PUSH2 0x1E47 PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E56 DUP6 DUP3 DUP7 ADD PUSH2 0x1D67 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E67 DUP6 DUP3 DUP7 ADD PUSH2 0x1E1C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E96 PUSH2 0x1E91 PUSH2 0x1E8C DUP5 PUSH2 0x1DD3 JUMP JUMPDEST PUSH2 0x1E71 JUMP JUMPDEST PUSH2 0x1DD3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA8 DUP3 PUSH2 0x1E7B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EBA DUP3 PUSH2 0x1E9D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1ECA DUP2 PUSH2 0x1EAF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1EE5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EC1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1EF4 DUP2 PUSH2 0x1DF3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F0D DUP2 PUSH2 0x1EFA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1F28 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x1EEB JUMP JUMPDEST PUSH2 0x1F35 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1EC1 JUMP JUMPDEST PUSH2 0x1F42 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1F04 JUMP JUMPDEST PUSH2 0x1F4F PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1F04 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F6E JUMPI PUSH2 0x1F6D PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F7C DUP5 DUP3 DUP6 ADD PUSH2 0x1E1C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1F8E DUP2 PUSH2 0x1D0A JUMP JUMPDEST DUP2 EQ PUSH2 0x1F99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FAB DUP2 PUSH2 0x1F85 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FC7 JUMPI PUSH2 0x1FC6 PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FD5 DUP5 DUP3 DUP6 ADD PUSH2 0x1F9C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FE9 DUP3 PUSH2 0x1E9D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FF9 DUP2 PUSH2 0x1FDE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2014 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1FF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x202F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EEB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x204A PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1D1C JUMP JUMPDEST PUSH2 0x2057 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D1C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2073 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F04 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2084 DUP3 PUSH2 0x1DF3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2094 DUP2 PUSH2 0x2079 JUMP JUMPDEST DUP2 EQ PUSH2 0x209F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x20B1 DUP2 PUSH2 0x208B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20CE JUMPI PUSH2 0x20CD PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x20DC DUP6 DUP3 DUP7 ADD PUSH2 0x1D67 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x20ED DUP6 DUP3 DUP7 ADD PUSH2 0x20A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x210E JUMPI PUSH2 0x210D PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x211C DUP6 DUP3 DUP7 ADD PUSH2 0x1E1C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x212D DUP6 DUP3 DUP7 ADD PUSH2 0x1D67 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x214C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1EEB JUMP JUMPDEST PUSH2 0x2159 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D1C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2179 JUMPI PUSH2 0x2178 PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2187 DUP7 DUP3 DUP8 ADD PUSH2 0x1E1C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2198 DUP7 DUP3 DUP8 ADD PUSH2 0x1D67 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x21A9 DUP7 DUP3 DUP8 ADD PUSH2 0x20A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21ED DUP3 PUSH2 0x1D0A JUMP JUMPDEST SWAP2 POP PUSH2 0x21F8 DUP4 PUSH2 0x1D0A JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2216 JUMPI PUSH2 0x2215 PUSH2 0x21B3 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x222B DUP2 PUSH2 0x1E05 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2247 JUMPI PUSH2 0x2246 PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2255 DUP5 DUP3 DUP6 ADD PUSH2 0x221C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2273 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1EEB JUMP JUMPDEST PUSH2 0x2280 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1DA9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22B9 PUSH2 0x22B4 PUSH2 0x22AF DUP5 PUSH2 0x2287 JUMP JUMPDEST PUSH2 0x1E71 JUMP JUMPDEST PUSH2 0x2291 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22C9 DUP2 PUSH2 0x229E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x22E4 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22C0 JUMP JUMPDEST PUSH2 0x22F1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F04 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2303 DUP3 PUSH2 0x1D0A JUMP JUMPDEST SWAP2 POP PUSH2 0x230E DUP4 PUSH2 0x1D0A JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x232C JUMPI PUSH2 0x232B PUSH2 0x21B3 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASLIMIT 0xB9 0xE7 BYTE 0xA8 0xDC 0x2A SGT SWAP12 0xB9 DUP11 GASLIMIT BALANCE PUSH22 0xD418F82BC5B62B4236CE56FE6B30A9DFFFC964736F6C PUSH4 0x4300081C STOP CALLER ", + "sourceMap": "598:5743:34:-:0;;;1999:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2127:4;2077:12;2091;:10;;;:12;;:::i;:::-;2415:1:9;2384:33;;:19;:33;;;2380:115;;2481:1;2440:44;;;;;;;;;;;:::i;:::-;;;;;;;;2380:115;2520:12;2504:13;;:28;;;;;;;;;;;;;;;;;;2542:51;2232:4:6;2553:18:9;;2573:19;2542:10;;;:51;;:::i;:::-;;2308:292;;1171:19:27;1147:44;;;;;;;;;;1096:102;1241:5:21;1231:7;;:15;;;;;;;;;;;;;;;;;;2144:53:34::2;1442:27;1315:35;2144:13;;;:53;;:::i;:::-;1999:205:::0;598:5743;;656:96:20;709:7;735:10;728:17;;656:96;:::o;5509:370:9:-;5595:4;2232::6;5623:18:9;;5615:4;:26;5611:214;;5687:1;5661:28;;:14;:12;;;:14;;:::i;:::-;:28;;;5657:114;;5716:40;;;;;;;;;;;;;;5657:114;5807:7;5784:20;;:30;;;;;;;;;;;;;;;;;;5611:214;5841:31;5858:4;5864:7;5841:16;;;:31;;:::i;:::-;5834:38;;5509:370;;;;:::o;6320:248::-;2232:4:6;6424:18:9;;6416:4;:26;6412:104;;6465:40;;;;;;;;;;;;;;6412:104;6525:36;6545:4;6551:9;6525:19;;;:36;;:::i;:::-;6320:248;;:::o;6707:106::-;6760:7;6786:20;;;;;;;;;;;6779:27;;6707:106;:::o;6179:316:6:-;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;5698:247::-;5781:25;5809:18;5822:4;5809:12;;;:18;;:::i;:::-;5781:46;;5862:9;5837:6;:12;5844:4;5837:12;;;;;;;;;;;:22;;:34;;;;5928:9;5909:17;5903:4;5886:52;;;;;;;;;;5771:174;5698:247;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;3810:120::-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;88:117:37:-;197:1;194;187:12;334:97;370:7;410:14;403:5;399:26;388:37;;334:97;;;:::o;437:120::-;509:23;526:5;509:23;:::i;:::-;502:5;499:34;489:62;;547:1;544;537:12;489:62;437:120;:::o;563:141::-;619:5;650:6;644:13;635:22;;666:32;692:5;666:32;:::i;:::-;563:141;;;;:::o;710:349::-;779:6;828:2;816:9;807:7;803:23;799:32;796:119;;;834:79;;:::i;:::-;796:119;954:1;979:63;1034:7;1025:6;1014:9;1010:22;979:63;:::i;:::-;969:73;;925:127;710:349;;;;:::o;1065:126::-;1102:7;1142:42;1135:5;1131:54;1120:65;;1065:126;;;:::o;1197:96::-;1234:7;1263:24;1281:5;1263:24;:::i;:::-;1252:35;;1197:96;;;:::o;1299:118::-;1386:24;1404:5;1386:24;:::i;:::-;1381:3;1374:37;1299:118;;:::o;1423:222::-;1516:4;1554:2;1543:9;1539:18;1531:26;;1567:71;1635:1;1624:9;1620:17;1611:6;1567:71;:::i;:::-;1423:222;;;;:::o;598:5743:34:-;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@DEFAULT_ADMIN_ROLE_1222": { + "entryPoint": 2751, + "id": 1222, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@PAUSER_ROLE_7139": { + "entryPoint": 3389, + "id": 7139, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@REGISTRAR_MANAGER_ROLE_7129": { + "entryPoint": 2839, + "id": 7129, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@REGISTRAR_ROLE_7134": { + "entryPoint": 3425, + "id": 7134, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_acceptDefaultAdminTransfer_2244": { + "entryPoint": 5144, + "id": 2244, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_beginDefaultAdminTransfer_2152": { + "entryPoint": 4084, + "id": 2152, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_cancelDefaultAdminTransfer_2176": { + "entryPoint": 5385, + "id": 2176, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_changeDefaultAdminDelay_2287": { + "entryPoint": 4207, + "id": 2287, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkDomainOwner_6555": { + "entryPoint": 4417, + "id": 6555, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkRole_1286": { + "entryPoint": 3583, + "id": 1286, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkRole_1307": { + "entryPoint": 5504, + "id": 1307, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_delayChangeWait_2339": { + "entryPoint": 6530, + "id": 2339, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_grantRole_1449": { + "entryPoint": 5825, + "id": 1449, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_grantRole_1970": { + "entryPoint": 3616, + "id": 1970, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_hasSchedulePassed_2435": { + "entryPoint": 3842, + "id": 2435, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isScheduleSet_2421": { + "entryPoint": 3821, + "id": 2421, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_msgSender_3401": { + "entryPoint": 4409, + "id": 3401, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_pause_3519": { + "entryPoint": 4310, + "id": 3519, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_registerDomain_7354": { + "entryPoint": 4981, + "id": 7354, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_requireNotPaused_3490": { + "entryPoint": 6625, + "id": 3490, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_requirePaused_3503": { + "entryPoint": 6197, + "id": 3503, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_revokeRole_1487": { + "entryPoint": 6975, + "id": 1487, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_revokeRole_2001": { + "entryPoint": 6066, + "id": 2001, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_rollbackDefaultAdminDelay_2308": { + "entryPoint": 3603, + "id": 2308, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_setDomainOwner_7436": { + "entryPoint": 6690, + "id": 7436, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setPendingDefaultAdmin_2369": { + "entryPoint": 6351, + "id": 2369, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setPendingDelay_2408": { + "entryPoint": 5585, + "id": 2408, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setVerifier_7397": { + "entryPoint": 4688, + "id": 7397, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_unpause_3535": { + "entryPoint": 3985, + "id": 3535, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@acceptDefaultAdminTransfer_2200": { + "entryPoint": 2985, + "id": 2200, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@beginDefaultAdminTransfer_2124": { + "entryPoint": 2286, + "id": 2124, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@cancelDefaultAdminTransfer_2163": { + "entryPoint": 3340, + "id": 2163, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@changeDefaultAdminDelay_2258": { + "entryPoint": 2312, + "id": 2258, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@defaultAdminDelayIncreaseWait_2110": { + "entryPoint": 1657, + "id": 2110, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@defaultAdminDelay_2071": { + "entryPoint": 2875, + "id": 2071, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@defaultAdmin_2035": { + "entryPoint": 2492, + "id": 2035, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@domainHashToRecord_7145": { + "entryPoint": 2151, + "id": 7145, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@domainOwner_7328": { + "entryPoint": 3202, + "id": 7328, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@domainVerifierSetTime_7293": { + "entryPoint": 2758, + "id": 7293, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@domainVerifier_7279": { + "entryPoint": 2087, + "id": 7279, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getRoleAdmin_1321": { + "entryPoint": 1692, + "id": 1321, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@grantRole_7313": { + "entryPoint": 1723, + "id": 7313, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@hasRole_1273": { + "entryPoint": 2549, + "id": 1273, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isDomainOwner_7244": { + "entryPoint": 2374, + "id": 7244, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@min_3887": { + "entryPoint": 7217, + "id": 3887, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@owner_1816": { + "entryPoint": 2534, + "id": 1816, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@pause_7215": { + "entryPoint": 2439, + "id": 7215, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@paused_3478": { + "entryPoint": 2263, + "id": 3478, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@pendingDefaultAdminDelay_2101": { + "entryPoint": 2655, + "id": 2101, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@pendingDefaultAdmin_2048": { + "entryPoint": 3135, + "id": 2048, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@registerDomainWithVerifier_7204": { + "entryPoint": 3364, + "id": 7204, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@registerDomain_7182": { + "entryPoint": 2825, + "id": 7182, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@registry_6499": { + "entryPoint": 2338, + "id": 6499, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@renounceRole_1382": { + "entryPoint": 3862, + "id": 1382, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@renounceRole_1931": { + "entryPoint": 1757, + "id": 1931, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@revokeRole_1359": { + "entryPoint": 5351, + "id": 1359, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@revokeRole_1870": { + "entryPoint": 3266, + "id": 1870, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@rollbackDefaultAdminDelay_2298": { + "entryPoint": 1668, + "id": 2298, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@setVerifier_7264": { + "entryPoint": 2790, + "id": 7264, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1255": { + "entryPoint": 3461, + "id": 1255, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_1806": { + "entryPoint": 1535, + "id": 1806, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3669": { + "entryPoint": 5398, + "id": 3669, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@toUint48_5491": { + "entryPoint": 6261, + "id": 5491, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@unpause_7226": { + "entryPoint": 2034, + "id": 7226, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 7708, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 8732, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes32": { + "entryPoint": 7527, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 7314, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_contract$_IVerifier_$7453": { + "entryPoint": 8354, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint48": { + "entryPoint": 8092, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 8024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 8753, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_bytes32": { + "entryPoint": 8439, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$7453": { + "entryPoint": 8544, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 7548, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_address": { + "entryPoint": 7729, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes32t_contract$_IVerifier_$7453": { + "entryPoint": 8375, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 7335, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint48": { + "entryPoint": 8113, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 7915, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 7392, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 7593, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack": { + "entryPoint": 8176, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack": { + "entryPoint": 7873, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack": { + "entryPoint": 8896, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 7940, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint48_to_t_uint48_fromStack": { + "entryPoint": 7452, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 8218, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { + "entryPoint": 8798, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_contract$_IVerifier_$7453_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 7955, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed": { + "entryPoint": 8503, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 7407, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 7608, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed": { + "entryPoint": 8191, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IVerifier_$7453__to_t_address__fromStack_reversed": { + "entryPoint": 7888, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed": { + "entryPoint": 8911, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 8286, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed": { + "entryPoint": 7467, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed": { + "entryPoint": 8245, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint48": { + "entryPoint": 8674, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint48": { + "entryPoint": 8952, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 7667, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 7380, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 7494, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 7247, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_contract$_IVerifier_$7453": { + "entryPoint": 8313, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_rational_48_by_1": { + "entryPoint": 8839, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 7635, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 7930, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint48": { + "entryPoint": 7434, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 8849, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_ISciRegistry_$7088_to_t_address": { + "entryPoint": 8158, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_IVerifier_$7453_to_t_address": { + "entryPoint": 7855, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_rational_48_by_1_to_t_uint8": { + "entryPoint": 8862, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 7837, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 7803, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 7793, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 8627, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 7242, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 7685, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 7504, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 7291, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_contract$_IVerifier_$7453": { + "entryPoint": 8331, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint48": { + "entryPoint": 8069, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:12929:37", + "nodeType": "YulBlock", + "src": "0:12929:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "378:105:37", + "nodeType": "YulBlock", + "src": "378:105:37", + "statements": [ + { + "nativeSrc": "388:89:37", + "nodeType": "YulAssignment", + "src": "388:89:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "403:5:37", + "nodeType": "YulIdentifier", + "src": "403:5:37" + }, + { + "kind": "number", + "nativeSrc": "410:66:37", + "nodeType": "YulLiteral", + "src": "410:66:37", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "399:3:37", + "nodeType": "YulIdentifier", + "src": "399:3:37" + }, + "nativeSrc": "399:78:37", + "nodeType": "YulFunctionCall", + "src": "399:78:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "388:7:37", + "nodeType": "YulIdentifier", + "src": "388:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "334:149:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "360:5:37", + "nodeType": "YulTypedName", + "src": "360:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "370:7:37", + "nodeType": "YulTypedName", + "src": "370:7:37", + "type": "" + } + ], + "src": "334:149:37" + }, + { + "body": { + "nativeSrc": "531:78:37", + "nodeType": "YulBlock", + "src": "531:78:37", + "statements": [ + { + "body": { + "nativeSrc": "587:16:37", + "nodeType": "YulBlock", + "src": "587:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "596:1:37", + "nodeType": "YulLiteral", + "src": "596:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "599:1:37", + "nodeType": "YulLiteral", + "src": "599:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "589:6:37", + "nodeType": "YulIdentifier", + "src": "589:6:37" + }, + "nativeSrc": "589:12:37", + "nodeType": "YulFunctionCall", + "src": "589:12:37" + }, + "nativeSrc": "589:12:37", + "nodeType": "YulExpressionStatement", + "src": "589:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "554:5:37", + "nodeType": "YulIdentifier", + "src": "554:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "578:5:37", + "nodeType": "YulIdentifier", + "src": "578:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "561:16:37", + "nodeType": "YulIdentifier", + "src": "561:16:37" + }, + "nativeSrc": "561:23:37", + "nodeType": "YulFunctionCall", + "src": "561:23:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "551:2:37", + "nodeType": "YulIdentifier", + "src": "551:2:37" + }, + "nativeSrc": "551:34:37", + "nodeType": "YulFunctionCall", + "src": "551:34:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "544:6:37", + "nodeType": "YulIdentifier", + "src": "544:6:37" + }, + "nativeSrc": "544:42:37", + "nodeType": "YulFunctionCall", + "src": "544:42:37" + }, + "nativeSrc": "541:62:37", + "nodeType": "YulIf", + "src": "541:62:37" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nativeSrc": "489:120:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "524:5:37", + "nodeType": "YulTypedName", + "src": "524:5:37", + "type": "" + } + ], + "src": "489:120:37" + }, + { + "body": { + "nativeSrc": "666:86:37", + "nodeType": "YulBlock", + "src": "666:86:37", + "statements": [ + { + "nativeSrc": "676:29:37", + "nodeType": "YulAssignment", + "src": "676:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "698:6:37", + "nodeType": "YulIdentifier", + "src": "698:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "685:12:37", + "nodeType": "YulIdentifier", + "src": "685:12:37" + }, + "nativeSrc": "685:20:37", + "nodeType": "YulFunctionCall", + "src": "685:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "676:5:37", + "nodeType": "YulIdentifier", + "src": "676:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "740:5:37", + "nodeType": "YulIdentifier", + "src": "740:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "714:25:37", + "nodeType": "YulIdentifier", + "src": "714:25:37" + }, + "nativeSrc": "714:32:37", + "nodeType": "YulFunctionCall", + "src": "714:32:37" + }, + "nativeSrc": "714:32:37", + "nodeType": "YulExpressionStatement", + "src": "714:32:37" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nativeSrc": "615:137:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "644:6:37", + "nodeType": "YulTypedName", + "src": "644:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "652:3:37", + "nodeType": "YulTypedName", + "src": "652:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "660:5:37", + "nodeType": "YulTypedName", + "src": "660:5:37", + "type": "" + } + ], + "src": "615:137:37" + }, + { + "body": { + "nativeSrc": "823:262:37", + "nodeType": "YulBlock", + "src": "823:262:37", + "statements": [ + { + "body": { + "nativeSrc": "869:83:37", + "nodeType": "YulBlock", + "src": "869:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "871:77:37", + "nodeType": "YulIdentifier", + "src": "871:77:37" + }, + "nativeSrc": "871:79:37", + "nodeType": "YulFunctionCall", + "src": "871:79:37" + }, + "nativeSrc": "871:79:37", + "nodeType": "YulExpressionStatement", + "src": "871:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "844:7:37", + "nodeType": "YulIdentifier", + "src": "844:7:37" + }, + { + "name": "headStart", + "nativeSrc": "853:9:37", + "nodeType": "YulIdentifier", + "src": "853:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "840:3:37", + "nodeType": "YulIdentifier", + "src": "840:3:37" + }, + "nativeSrc": "840:23:37", + "nodeType": "YulFunctionCall", + "src": "840:23:37" + }, + { + "kind": "number", + "nativeSrc": "865:2:37", + "nodeType": "YulLiteral", + "src": "865:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "836:3:37", + "nodeType": "YulIdentifier", + "src": "836:3:37" + }, + "nativeSrc": "836:32:37", + "nodeType": "YulFunctionCall", + "src": "836:32:37" + }, + "nativeSrc": "833:119:37", + "nodeType": "YulIf", + "src": "833:119:37" + }, + { + "nativeSrc": "962:116:37", + "nodeType": "YulBlock", + "src": "962:116:37", + "statements": [ + { + "nativeSrc": "977:15:37", + "nodeType": "YulVariableDeclaration", + "src": "977:15:37", + "value": { + "kind": "number", + "nativeSrc": "991:1:37", + "nodeType": "YulLiteral", + "src": "991:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "981:6:37", + "nodeType": "YulTypedName", + "src": "981:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1006:62:37", + "nodeType": "YulAssignment", + "src": "1006:62:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1040:9:37", + "nodeType": "YulIdentifier", + "src": "1040:9:37" + }, + { + "name": "offset", + "nativeSrc": "1051:6:37", + "nodeType": "YulIdentifier", + "src": "1051:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1036:3:37", + "nodeType": "YulIdentifier", + "src": "1036:3:37" + }, + "nativeSrc": "1036:22:37", + "nodeType": "YulFunctionCall", + "src": "1036:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1060:7:37", + "nodeType": "YulIdentifier", + "src": "1060:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nativeSrc": "1016:19:37", + "nodeType": "YulIdentifier", + "src": "1016:19:37" + }, + "nativeSrc": "1016:52:37", + "nodeType": "YulFunctionCall", + "src": "1016:52:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1006:6:37", + "nodeType": "YulIdentifier", + "src": "1006:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "758:327:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "793:9:37", + "nodeType": "YulTypedName", + "src": "793:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "804:7:37", + "nodeType": "YulTypedName", + "src": "804:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "816:6:37", + "nodeType": "YulTypedName", + "src": "816:6:37", + "type": "" + } + ], + "src": "758:327:37" + }, + { + "body": { + "nativeSrc": "1133:48:37", + "nodeType": "YulBlock", + "src": "1133:48:37", + "statements": [ + { + "nativeSrc": "1143:32:37", + "nodeType": "YulAssignment", + "src": "1143:32:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:37", + "nodeType": "YulIdentifier", + "src": "1168:5:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1161:6:37", + "nodeType": "YulIdentifier", + "src": "1161:6:37" + }, + "nativeSrc": "1161:13:37", + "nodeType": "YulFunctionCall", + "src": "1161:13:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1154:6:37", + "nodeType": "YulIdentifier", + "src": "1154:6:37" + }, + "nativeSrc": "1154:21:37", + "nodeType": "YulFunctionCall", + "src": "1154:21:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1143:7:37", + "nodeType": "YulIdentifier", + "src": "1143:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "1091:90:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1115:5:37", + "nodeType": "YulTypedName", + "src": "1115:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1125:7:37", + "nodeType": "YulTypedName", + "src": "1125:7:37", + "type": "" + } + ], + "src": "1091:90:37" + }, + { + "body": { + "nativeSrc": "1246:50:37", + "nodeType": "YulBlock", + "src": "1246:50:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1263:3:37", + "nodeType": "YulIdentifier", + "src": "1263:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1283:5:37", + "nodeType": "YulIdentifier", + "src": "1283:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "1268:14:37", + "nodeType": "YulIdentifier", + "src": "1268:14:37" + }, + "nativeSrc": "1268:21:37", + "nodeType": "YulFunctionCall", + "src": "1268:21:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1256:6:37", + "nodeType": "YulIdentifier", + "src": "1256:6:37" + }, + "nativeSrc": "1256:34:37", + "nodeType": "YulFunctionCall", + "src": "1256:34:37" + }, + "nativeSrc": "1256:34:37", + "nodeType": "YulExpressionStatement", + "src": "1256:34:37" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1187:109:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1234:5:37", + "nodeType": "YulTypedName", + "src": "1234:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1241:3:37", + "nodeType": "YulTypedName", + "src": "1241:3:37", + "type": "" + } + ], + "src": "1187:109:37" + }, + { + "body": { + "nativeSrc": "1394:118:37", + "nodeType": "YulBlock", + "src": "1394:118:37", + "statements": [ + { + "nativeSrc": "1404:26:37", + "nodeType": "YulAssignment", + "src": "1404:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1416:9:37", + "nodeType": "YulIdentifier", + "src": "1416:9:37" + }, + { + "kind": "number", + "nativeSrc": "1427:2:37", + "nodeType": "YulLiteral", + "src": "1427:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1412:3:37", + "nodeType": "YulIdentifier", + "src": "1412:3:37" + }, + "nativeSrc": "1412:18:37", + "nodeType": "YulFunctionCall", + "src": "1412:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1404:4:37", + "nodeType": "YulIdentifier", + "src": "1404:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1478:6:37", + "nodeType": "YulIdentifier", + "src": "1478:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1491:9:37", + "nodeType": "YulIdentifier", + "src": "1491:9:37" + }, + { + "kind": "number", + "nativeSrc": "1502:1:37", + "nodeType": "YulLiteral", + "src": "1502:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1487:3:37", + "nodeType": "YulIdentifier", + "src": "1487:3:37" + }, + "nativeSrc": "1487:17:37", + "nodeType": "YulFunctionCall", + "src": "1487:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1440:37:37", + "nodeType": "YulIdentifier", + "src": "1440:37:37" + }, + "nativeSrc": "1440:65:37", + "nodeType": "YulFunctionCall", + "src": "1440:65:37" + }, + "nativeSrc": "1440:65:37", + "nodeType": "YulExpressionStatement", + "src": "1440:65:37" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "1302:210:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1366:9:37", + "nodeType": "YulTypedName", + "src": "1366:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1378:6:37", + "nodeType": "YulTypedName", + "src": "1378:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1389:4:37", + "nodeType": "YulTypedName", + "src": "1389:4:37", + "type": "" + } + ], + "src": "1302:210:37" + }, + { + "body": { + "nativeSrc": "1562:53:37", + "nodeType": "YulBlock", + "src": "1562:53:37", + "statements": [ + { + "nativeSrc": "1572:37:37", + "nodeType": "YulAssignment", + "src": "1572:37:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1587:5:37", + "nodeType": "YulIdentifier", + "src": "1587:5:37" + }, + { + "kind": "number", + "nativeSrc": "1594:14:37", + "nodeType": "YulLiteral", + "src": "1594:14:37", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1583:3:37", + "nodeType": "YulIdentifier", + "src": "1583:3:37" + }, + "nativeSrc": "1583:26:37", + "nodeType": "YulFunctionCall", + "src": "1583:26:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1572:7:37", + "nodeType": "YulIdentifier", + "src": "1572:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint48", + "nativeSrc": "1518:97:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1544:5:37", + "nodeType": "YulTypedName", + "src": "1544:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1554:7:37", + "nodeType": "YulTypedName", + "src": "1554:7:37", + "type": "" + } + ], + "src": "1518:97:37" + }, + { + "body": { + "nativeSrc": "1684:52:37", + "nodeType": "YulBlock", + "src": "1684:52:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1701:3:37", + "nodeType": "YulIdentifier", + "src": "1701:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1723:5:37", + "nodeType": "YulIdentifier", + "src": "1723:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "1706:16:37", + "nodeType": "YulIdentifier", + "src": "1706:16:37" + }, + "nativeSrc": "1706:23:37", + "nodeType": "YulFunctionCall", + "src": "1706:23:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1694:6:37", + "nodeType": "YulIdentifier", + "src": "1694:6:37" + }, + "nativeSrc": "1694:36:37", + "nodeType": "YulFunctionCall", + "src": "1694:36:37" + }, + "nativeSrc": "1694:36:37", + "nodeType": "YulExpressionStatement", + "src": "1694:36:37" + } + ] + }, + "name": "abi_encode_t_uint48_to_t_uint48_fromStack", + "nativeSrc": "1621:115:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1672:5:37", + "nodeType": "YulTypedName", + "src": "1672:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1679:3:37", + "nodeType": "YulTypedName", + "src": "1679:3:37", + "type": "" + } + ], + "src": "1621:115:37" + }, + { + "body": { + "nativeSrc": "1838:122:37", + "nodeType": "YulBlock", + "src": "1838:122:37", + "statements": [ + { + "nativeSrc": "1848:26:37", + "nodeType": "YulAssignment", + "src": "1848:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1860:9:37", + "nodeType": "YulIdentifier", + "src": "1860:9:37" + }, + { + "kind": "number", + "nativeSrc": "1871:2:37", + "nodeType": "YulLiteral", + "src": "1871:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1856:3:37", + "nodeType": "YulIdentifier", + "src": "1856:3:37" + }, + "nativeSrc": "1856:18:37", + "nodeType": "YulFunctionCall", + "src": "1856:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1848:4:37", + "nodeType": "YulIdentifier", + "src": "1848:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1926:6:37", + "nodeType": "YulIdentifier", + "src": "1926:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1939:9:37", + "nodeType": "YulIdentifier", + "src": "1939:9:37" + }, + { + "kind": "number", + "nativeSrc": "1950:1:37", + "nodeType": "YulLiteral", + "src": "1950:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1935:3:37", + "nodeType": "YulIdentifier", + "src": "1935:3:37" + }, + "nativeSrc": "1935:17:37", + "nodeType": "YulFunctionCall", + "src": "1935:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint48_to_t_uint48_fromStack", + "nativeSrc": "1884:41:37", + "nodeType": "YulIdentifier", + "src": "1884:41:37" + }, + "nativeSrc": "1884:69:37", + "nodeType": "YulFunctionCall", + "src": "1884:69:37" + }, + "nativeSrc": "1884:69:37", + "nodeType": "YulExpressionStatement", + "src": "1884:69:37" + } + ] + }, + "name": "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed", + "nativeSrc": "1742:218:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1810:9:37", + "nodeType": "YulTypedName", + "src": "1810:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1822:6:37", + "nodeType": "YulTypedName", + "src": "1822:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1833:4:37", + "nodeType": "YulTypedName", + "src": "1833:4:37", + "type": "" + } + ], + "src": "1742:218:37" + }, + { + "body": { + "nativeSrc": "2011:32:37", + "nodeType": "YulBlock", + "src": "2011:32:37", + "statements": [ + { + "nativeSrc": "2021:16:37", + "nodeType": "YulAssignment", + "src": "2021:16:37", + "value": { + "name": "value", + "nativeSrc": "2032:5:37", + "nodeType": "YulIdentifier", + "src": "2032:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2021:7:37", + "nodeType": "YulIdentifier", + "src": "2021:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "1966:77:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1993:5:37", + "nodeType": "YulTypedName", + "src": "1993:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2003:7:37", + "nodeType": "YulTypedName", + "src": "2003:7:37", + "type": "" + } + ], + "src": "1966:77:37" + }, + { + "body": { + "nativeSrc": "2092:79:37", + "nodeType": "YulBlock", + "src": "2092:79:37", + "statements": [ + { + "body": { + "nativeSrc": "2149:16:37", + "nodeType": "YulBlock", + "src": "2149:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2158:1:37", + "nodeType": "YulLiteral", + "src": "2158:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2161:1:37", + "nodeType": "YulLiteral", + "src": "2161:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2151:6:37", + "nodeType": "YulIdentifier", + "src": "2151:6:37" + }, + "nativeSrc": "2151:12:37", + "nodeType": "YulFunctionCall", + "src": "2151:12:37" + }, + "nativeSrc": "2151:12:37", + "nodeType": "YulExpressionStatement", + "src": "2151:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2115:5:37", + "nodeType": "YulIdentifier", + "src": "2115:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2140:5:37", + "nodeType": "YulIdentifier", + "src": "2140:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "2122:17:37", + "nodeType": "YulIdentifier", + "src": "2122:17:37" + }, + "nativeSrc": "2122:24:37", + "nodeType": "YulFunctionCall", + "src": "2122:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2112:2:37", + "nodeType": "YulIdentifier", + "src": "2112:2:37" + }, + "nativeSrc": "2112:35:37", + "nodeType": "YulFunctionCall", + "src": "2112:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2105:6:37", + "nodeType": "YulIdentifier", + "src": "2105:6:37" + }, + "nativeSrc": "2105:43:37", + "nodeType": "YulFunctionCall", + "src": "2105:43:37" + }, + "nativeSrc": "2102:63:37", + "nodeType": "YulIf", + "src": "2102:63:37" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nativeSrc": "2049:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2085:5:37", + "nodeType": "YulTypedName", + "src": "2085:5:37", + "type": "" + } + ], + "src": "2049:122:37" + }, + { + "body": { + "nativeSrc": "2229:87:37", + "nodeType": "YulBlock", + "src": "2229:87:37", + "statements": [ + { + "nativeSrc": "2239:29:37", + "nodeType": "YulAssignment", + "src": "2239:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2261:6:37", + "nodeType": "YulIdentifier", + "src": "2261:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2248:12:37", + "nodeType": "YulIdentifier", + "src": "2248:12:37" + }, + "nativeSrc": "2248:20:37", + "nodeType": "YulFunctionCall", + "src": "2248:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2239:5:37", + "nodeType": "YulIdentifier", + "src": "2239:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2304:5:37", + "nodeType": "YulIdentifier", + "src": "2304:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nativeSrc": "2277:26:37", + "nodeType": "YulIdentifier", + "src": "2277:26:37" + }, + "nativeSrc": "2277:33:37", + "nodeType": "YulFunctionCall", + "src": "2277:33:37" + }, + "nativeSrc": "2277:33:37", + "nodeType": "YulExpressionStatement", + "src": "2277:33:37" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nativeSrc": "2177:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2207:6:37", + "nodeType": "YulTypedName", + "src": "2207:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2215:3:37", + "nodeType": "YulTypedName", + "src": "2215:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2223:5:37", + "nodeType": "YulTypedName", + "src": "2223:5:37", + "type": "" + } + ], + "src": "2177:139:37" + }, + { + "body": { + "nativeSrc": "2388:263:37", + "nodeType": "YulBlock", + "src": "2388:263:37", + "statements": [ + { + "body": { + "nativeSrc": "2434:83:37", + "nodeType": "YulBlock", + "src": "2434:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2436:77:37", + "nodeType": "YulIdentifier", + "src": "2436:77:37" + }, + "nativeSrc": "2436:79:37", + "nodeType": "YulFunctionCall", + "src": "2436:79:37" + }, + "nativeSrc": "2436:79:37", + "nodeType": "YulExpressionStatement", + "src": "2436:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2409:7:37", + "nodeType": "YulIdentifier", + "src": "2409:7:37" + }, + { + "name": "headStart", + "nativeSrc": "2418:9:37", + "nodeType": "YulIdentifier", + "src": "2418:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2405:3:37", + "nodeType": "YulIdentifier", + "src": "2405:3:37" + }, + "nativeSrc": "2405:23:37", + "nodeType": "YulFunctionCall", + "src": "2405:23:37" + }, + { + "kind": "number", + "nativeSrc": "2430:2:37", + "nodeType": "YulLiteral", + "src": "2430:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2401:3:37", + "nodeType": "YulIdentifier", + "src": "2401:3:37" + }, + "nativeSrc": "2401:32:37", + "nodeType": "YulFunctionCall", + "src": "2401:32:37" + }, + "nativeSrc": "2398:119:37", + "nodeType": "YulIf", + "src": "2398:119:37" + }, + { + "nativeSrc": "2527:117:37", + "nodeType": "YulBlock", + "src": "2527:117:37", + "statements": [ + { + "nativeSrc": "2542:15:37", + "nodeType": "YulVariableDeclaration", + "src": "2542:15:37", + "value": { + "kind": "number", + "nativeSrc": "2556:1:37", + "nodeType": "YulLiteral", + "src": "2556:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2546:6:37", + "nodeType": "YulTypedName", + "src": "2546:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "2571:63:37", + "nodeType": "YulAssignment", + "src": "2571:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2606:9:37", + "nodeType": "YulIdentifier", + "src": "2606:9:37" + }, + { + "name": "offset", + "nativeSrc": "2617:6:37", + "nodeType": "YulIdentifier", + "src": "2617:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2602:3:37", + "nodeType": "YulIdentifier", + "src": "2602:3:37" + }, + "nativeSrc": "2602:22:37", + "nodeType": "YulFunctionCall", + "src": "2602:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "2626:7:37", + "nodeType": "YulIdentifier", + "src": "2626:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "2581:20:37", + "nodeType": "YulIdentifier", + "src": "2581:20:37" + }, + "nativeSrc": "2581:53:37", + "nodeType": "YulFunctionCall", + "src": "2581:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2571:6:37", + "nodeType": "YulIdentifier", + "src": "2571:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "2322:329:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2358:9:37", + "nodeType": "YulTypedName", + "src": "2358:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2369:7:37", + "nodeType": "YulTypedName", + "src": "2369:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2381:6:37", + "nodeType": "YulTypedName", + "src": "2381:6:37", + "type": "" + } + ], + "src": "2322:329:37" + }, + { + "body": { + "nativeSrc": "2722:53:37", + "nodeType": "YulBlock", + "src": "2722:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2739:3:37", + "nodeType": "YulIdentifier", + "src": "2739:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2762:5:37", + "nodeType": "YulIdentifier", + "src": "2762:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "2744:17:37", + "nodeType": "YulIdentifier", + "src": "2744:17:37" + }, + "nativeSrc": "2744:24:37", + "nodeType": "YulFunctionCall", + "src": "2744:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2732:6:37", + "nodeType": "YulIdentifier", + "src": "2732:6:37" + }, + "nativeSrc": "2732:37:37", + "nodeType": "YulFunctionCall", + "src": "2732:37:37" + }, + "nativeSrc": "2732:37:37", + "nodeType": "YulExpressionStatement", + "src": "2732:37:37" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "2657:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2710:5:37", + "nodeType": "YulTypedName", + "src": "2710:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2717:3:37", + "nodeType": "YulTypedName", + "src": "2717:3:37", + "type": "" + } + ], + "src": "2657:118:37" + }, + { + "body": { + "nativeSrc": "2879:124:37", + "nodeType": "YulBlock", + "src": "2879:124:37", + "statements": [ + { + "nativeSrc": "2889:26:37", + "nodeType": "YulAssignment", + "src": "2889:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2901:9:37", + "nodeType": "YulIdentifier", + "src": "2901:9:37" + }, + { + "kind": "number", + "nativeSrc": "2912:2:37", + "nodeType": "YulLiteral", + "src": "2912:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2897:3:37", + "nodeType": "YulIdentifier", + "src": "2897:3:37" + }, + "nativeSrc": "2897:18:37", + "nodeType": "YulFunctionCall", + "src": "2897:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2889:4:37", + "nodeType": "YulIdentifier", + "src": "2889:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2969:6:37", + "nodeType": "YulIdentifier", + "src": "2969:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2982:9:37", + "nodeType": "YulIdentifier", + "src": "2982:9:37" + }, + { + "kind": "number", + "nativeSrc": "2993:1:37", + "nodeType": "YulLiteral", + "src": "2993:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2978:3:37", + "nodeType": "YulIdentifier", + "src": "2978:3:37" + }, + "nativeSrc": "2978:17:37", + "nodeType": "YulFunctionCall", + "src": "2978:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "2925:43:37", + "nodeType": "YulIdentifier", + "src": "2925:43:37" + }, + "nativeSrc": "2925:71:37", + "nodeType": "YulFunctionCall", + "src": "2925:71:37" + }, + "nativeSrc": "2925:71:37", + "nodeType": "YulExpressionStatement", + "src": "2925:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "2781:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2851:9:37", + "nodeType": "YulTypedName", + "src": "2851:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2863:6:37", + "nodeType": "YulTypedName", + "src": "2863:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2874:4:37", + "nodeType": "YulTypedName", + "src": "2874:4:37", + "type": "" + } + ], + "src": "2781:222:37" + }, + { + "body": { + "nativeSrc": "3054:81:37", + "nodeType": "YulBlock", + "src": "3054:81:37", + "statements": [ + { + "nativeSrc": "3064:65:37", + "nodeType": "YulAssignment", + "src": "3064:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3079:5:37", + "nodeType": "YulIdentifier", + "src": "3079:5:37" + }, + { + "kind": "number", + "nativeSrc": "3086:42:37", + "nodeType": "YulLiteral", + "src": "3086:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3075:3:37", + "nodeType": "YulIdentifier", + "src": "3075:3:37" + }, + "nativeSrc": "3075:54:37", + "nodeType": "YulFunctionCall", + "src": "3075:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3064:7:37", + "nodeType": "YulIdentifier", + "src": "3064:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "3009:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3036:5:37", + "nodeType": "YulTypedName", + "src": "3036:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3046:7:37", + "nodeType": "YulTypedName", + "src": "3046:7:37", + "type": "" + } + ], + "src": "3009:126:37" + }, + { + "body": { + "nativeSrc": "3186:51:37", + "nodeType": "YulBlock", + "src": "3186:51:37", + "statements": [ + { + "nativeSrc": "3196:35:37", + "nodeType": "YulAssignment", + "src": "3196:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3225:5:37", + "nodeType": "YulIdentifier", + "src": "3225:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3207:17:37", + "nodeType": "YulIdentifier", + "src": "3207:17:37" + }, + "nativeSrc": "3207:24:37", + "nodeType": "YulFunctionCall", + "src": "3207:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3196:7:37", + "nodeType": "YulIdentifier", + "src": "3196:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "3141:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3168:5:37", + "nodeType": "YulTypedName", + "src": "3168:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3178:7:37", + "nodeType": "YulTypedName", + "src": "3178:7:37", + "type": "" + } + ], + "src": "3141:96:37" + }, + { + "body": { + "nativeSrc": "3286:79:37", + "nodeType": "YulBlock", + "src": "3286:79:37", + "statements": [ + { + "body": { + "nativeSrc": "3343:16:37", + "nodeType": "YulBlock", + "src": "3343:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3352:1:37", + "nodeType": "YulLiteral", + "src": "3352:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3355:1:37", + "nodeType": "YulLiteral", + "src": "3355:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3345:6:37", + "nodeType": "YulIdentifier", + "src": "3345:6:37" + }, + "nativeSrc": "3345:12:37", + "nodeType": "YulFunctionCall", + "src": "3345:12:37" + }, + "nativeSrc": "3345:12:37", + "nodeType": "YulExpressionStatement", + "src": "3345:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3309:5:37", + "nodeType": "YulIdentifier", + "src": "3309:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3334:5:37", + "nodeType": "YulIdentifier", + "src": "3334:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "3316:17:37", + "nodeType": "YulIdentifier", + "src": "3316:17:37" + }, + "nativeSrc": "3316:24:37", + "nodeType": "YulFunctionCall", + "src": "3316:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3306:2:37", + "nodeType": "YulIdentifier", + "src": "3306:2:37" + }, + "nativeSrc": "3306:35:37", + "nodeType": "YulFunctionCall", + "src": "3306:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3299:6:37", + "nodeType": "YulIdentifier", + "src": "3299:6:37" + }, + "nativeSrc": "3299:43:37", + "nodeType": "YulFunctionCall", + "src": "3299:43:37" + }, + "nativeSrc": "3296:63:37", + "nodeType": "YulIf", + "src": "3296:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "3243:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3279:5:37", + "nodeType": "YulTypedName", + "src": "3279:5:37", + "type": "" + } + ], + "src": "3243:122:37" + }, + { + "body": { + "nativeSrc": "3423:87:37", + "nodeType": "YulBlock", + "src": "3423:87:37", + "statements": [ + { + "nativeSrc": "3433:29:37", + "nodeType": "YulAssignment", + "src": "3433:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3455:6:37", + "nodeType": "YulIdentifier", + "src": "3455:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3442:12:37", + "nodeType": "YulIdentifier", + "src": "3442:12:37" + }, + "nativeSrc": "3442:20:37", + "nodeType": "YulFunctionCall", + "src": "3442:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3433:5:37", + "nodeType": "YulIdentifier", + "src": "3433:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3498:5:37", + "nodeType": "YulIdentifier", + "src": "3498:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "3471:26:37", + "nodeType": "YulIdentifier", + "src": "3471:26:37" + }, + "nativeSrc": "3471:33:37", + "nodeType": "YulFunctionCall", + "src": "3471:33:37" + }, + "nativeSrc": "3471:33:37", + "nodeType": "YulExpressionStatement", + "src": "3471:33:37" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "3371:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3401:6:37", + "nodeType": "YulTypedName", + "src": "3401:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3409:3:37", + "nodeType": "YulTypedName", + "src": "3409:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3417:5:37", + "nodeType": "YulTypedName", + "src": "3417:5:37", + "type": "" + } + ], + "src": "3371:139:37" + }, + { + "body": { + "nativeSrc": "3599:391:37", + "nodeType": "YulBlock", + "src": "3599:391:37", + "statements": [ + { + "body": { + "nativeSrc": "3645:83:37", + "nodeType": "YulBlock", + "src": "3645:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3647:77:37", + "nodeType": "YulIdentifier", + "src": "3647:77:37" + }, + "nativeSrc": "3647:79:37", + "nodeType": "YulFunctionCall", + "src": "3647:79:37" + }, + "nativeSrc": "3647:79:37", + "nodeType": "YulExpressionStatement", + "src": "3647:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3620:7:37", + "nodeType": "YulIdentifier", + "src": "3620:7:37" + }, + { + "name": "headStart", + "nativeSrc": "3629:9:37", + "nodeType": "YulIdentifier", + "src": "3629:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3616:3:37", + "nodeType": "YulIdentifier", + "src": "3616:3:37" + }, + "nativeSrc": "3616:23:37", + "nodeType": "YulFunctionCall", + "src": "3616:23:37" + }, + { + "kind": "number", + "nativeSrc": "3641:2:37", + "nodeType": "YulLiteral", + "src": "3641:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3612:3:37", + "nodeType": "YulIdentifier", + "src": "3612:3:37" + }, + "nativeSrc": "3612:32:37", + "nodeType": "YulFunctionCall", + "src": "3612:32:37" + }, + "nativeSrc": "3609:119:37", + "nodeType": "YulIf", + "src": "3609:119:37" + }, + { + "nativeSrc": "3738:117:37", + "nodeType": "YulBlock", + "src": "3738:117:37", + "statements": [ + { + "nativeSrc": "3753:15:37", + "nodeType": "YulVariableDeclaration", + "src": "3753:15:37", + "value": { + "kind": "number", + "nativeSrc": "3767:1:37", + "nodeType": "YulLiteral", + "src": "3767:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3757:6:37", + "nodeType": "YulTypedName", + "src": "3757:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3782:63:37", + "nodeType": "YulAssignment", + "src": "3782:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3817:9:37", + "nodeType": "YulIdentifier", + "src": "3817:9:37" + }, + { + "name": "offset", + "nativeSrc": "3828:6:37", + "nodeType": "YulIdentifier", + "src": "3828:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3813:3:37", + "nodeType": "YulIdentifier", + "src": "3813:3:37" + }, + "nativeSrc": "3813:22:37", + "nodeType": "YulFunctionCall", + "src": "3813:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3837:7:37", + "nodeType": "YulIdentifier", + "src": "3837:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "3792:20:37", + "nodeType": "YulIdentifier", + "src": "3792:20:37" + }, + "nativeSrc": "3792:53:37", + "nodeType": "YulFunctionCall", + "src": "3792:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3782:6:37", + "nodeType": "YulIdentifier", + "src": "3782:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "3865:118:37", + "nodeType": "YulBlock", + "src": "3865:118:37", + "statements": [ + { + "nativeSrc": "3880:16:37", + "nodeType": "YulVariableDeclaration", + "src": "3880:16:37", + "value": { + "kind": "number", + "nativeSrc": "3894:2:37", + "nodeType": "YulLiteral", + "src": "3894:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3884:6:37", + "nodeType": "YulTypedName", + "src": "3884:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "3910:63:37", + "nodeType": "YulAssignment", + "src": "3910:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3945:9:37", + "nodeType": "YulIdentifier", + "src": "3945:9:37" + }, + { + "name": "offset", + "nativeSrc": "3956:6:37", + "nodeType": "YulIdentifier", + "src": "3956:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3941:3:37", + "nodeType": "YulIdentifier", + "src": "3941:3:37" + }, + "nativeSrc": "3941:22:37", + "nodeType": "YulFunctionCall", + "src": "3941:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "3965:7:37", + "nodeType": "YulIdentifier", + "src": "3965:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "3920:20:37", + "nodeType": "YulIdentifier", + "src": "3920:20:37" + }, + "nativeSrc": "3920:53:37", + "nodeType": "YulFunctionCall", + "src": "3920:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "3910:6:37", + "nodeType": "YulIdentifier", + "src": "3910:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nativeSrc": "3516:474:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3561:9:37", + "nodeType": "YulTypedName", + "src": "3561:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3572:7:37", + "nodeType": "YulTypedName", + "src": "3572:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3584:6:37", + "nodeType": "YulTypedName", + "src": "3584:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3592:6:37", + "nodeType": "YulTypedName", + "src": "3592:6:37", + "type": "" + } + ], + "src": "3516:474:37" + }, + { + "body": { + "nativeSrc": "4028:28:37", + "nodeType": "YulBlock", + "src": "4028:28:37", + "statements": [ + { + "nativeSrc": "4038:12:37", + "nodeType": "YulAssignment", + "src": "4038:12:37", + "value": { + "name": "value", + "nativeSrc": "4045:5:37", + "nodeType": "YulIdentifier", + "src": "4045:5:37" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4038:3:37", + "nodeType": "YulIdentifier", + "src": "4038:3:37" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "3996:60:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4014:5:37", + "nodeType": "YulTypedName", + "src": "4014:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4024:3:37", + "nodeType": "YulTypedName", + "src": "4024:3:37", + "type": "" + } + ], + "src": "3996:60:37" + }, + { + "body": { + "nativeSrc": "4122:82:37", + "nodeType": "YulBlock", + "src": "4122:82:37", + "statements": [ + { + "nativeSrc": "4132:66:37", + "nodeType": "YulAssignment", + "src": "4132:66:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4190:5:37", + "nodeType": "YulIdentifier", + "src": "4190:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "4172:17:37", + "nodeType": "YulIdentifier", + "src": "4172:17:37" + }, + "nativeSrc": "4172:24:37", + "nodeType": "YulFunctionCall", + "src": "4172:24:37" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "4163:8:37", + "nodeType": "YulIdentifier", + "src": "4163:8:37" + }, + "nativeSrc": "4163:34:37", + "nodeType": "YulFunctionCall", + "src": "4163:34:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "4145:17:37", + "nodeType": "YulIdentifier", + "src": "4145:17:37" + }, + "nativeSrc": "4145:53:37", + "nodeType": "YulFunctionCall", + "src": "4145:53:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "4132:9:37", + "nodeType": "YulIdentifier", + "src": "4132:9:37" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "4062:142:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4102:5:37", + "nodeType": "YulTypedName", + "src": "4102:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4112:9:37", + "nodeType": "YulTypedName", + "src": "4112:9:37", + "type": "" + } + ], + "src": "4062:142:37" + }, + { + "body": { + "nativeSrc": "4270:66:37", + "nodeType": "YulBlock", + "src": "4270:66:37", + "statements": [ + { + "nativeSrc": "4280:50:37", + "nodeType": "YulAssignment", + "src": "4280:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4324:5:37", + "nodeType": "YulIdentifier", + "src": "4324:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "4293:30:37", + "nodeType": "YulIdentifier", + "src": "4293:30:37" + }, + "nativeSrc": "4293:37:37", + "nodeType": "YulFunctionCall", + "src": "4293:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "4280:9:37", + "nodeType": "YulIdentifier", + "src": "4280:9:37" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "4210:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4250:5:37", + "nodeType": "YulTypedName", + "src": "4250:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4260:9:37", + "nodeType": "YulTypedName", + "src": "4260:9:37", + "type": "" + } + ], + "src": "4210:126:37" + }, + { + "body": { + "nativeSrc": "4420:66:37", + "nodeType": "YulBlock", + "src": "4420:66:37", + "statements": [ + { + "nativeSrc": "4430:50:37", + "nodeType": "YulAssignment", + "src": "4430:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4474:5:37", + "nodeType": "YulIdentifier", + "src": "4474:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "4443:30:37", + "nodeType": "YulIdentifier", + "src": "4443:30:37" + }, + "nativeSrc": "4443:37:37", + "nodeType": "YulFunctionCall", + "src": "4443:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "4430:9:37", + "nodeType": "YulIdentifier", + "src": "4430:9:37" + } + ] + } + ] + }, + "name": "convert_t_contract$_IVerifier_$7453_to_t_address", + "nativeSrc": "4342:144:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4400:5:37", + "nodeType": "YulTypedName", + "src": "4400:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4410:9:37", + "nodeType": "YulTypedName", + "src": "4410:9:37", + "type": "" + } + ], + "src": "4342:144:37" + }, + { + "body": { + "nativeSrc": "4575:84:37", + "nodeType": "YulBlock", + "src": "4575:84:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4592:3:37", + "nodeType": "YulIdentifier", + "src": "4592:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4646:5:37", + "nodeType": "YulIdentifier", + "src": "4646:5:37" + } + ], + "functionName": { + "name": "convert_t_contract$_IVerifier_$7453_to_t_address", + "nativeSrc": "4597:48:37", + "nodeType": "YulIdentifier", + "src": "4597:48:37" + }, + "nativeSrc": "4597:55:37", + "nodeType": "YulFunctionCall", + "src": "4597:55:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4585:6:37", + "nodeType": "YulIdentifier", + "src": "4585:6:37" + }, + "nativeSrc": "4585:68:37", + "nodeType": "YulFunctionCall", + "src": "4585:68:37" + }, + "nativeSrc": "4585:68:37", + "nodeType": "YulExpressionStatement", + "src": "4585:68:37" + } + ] + }, + "name": "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack", + "nativeSrc": "4492:167:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4563:5:37", + "nodeType": "YulTypedName", + "src": "4563:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4570:3:37", + "nodeType": "YulTypedName", + "src": "4570:3:37", + "type": "" + } + ], + "src": "4492:167:37" + }, + { + "body": { + "nativeSrc": "4781:142:37", + "nodeType": "YulBlock", + "src": "4781:142:37", + "statements": [ + { + "nativeSrc": "4791:26:37", + "nodeType": "YulAssignment", + "src": "4791:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4803:9:37", + "nodeType": "YulIdentifier", + "src": "4803:9:37" + }, + { + "kind": "number", + "nativeSrc": "4814:2:37", + "nodeType": "YulLiteral", + "src": "4814:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4799:3:37", + "nodeType": "YulIdentifier", + "src": "4799:3:37" + }, + "nativeSrc": "4799:18:37", + "nodeType": "YulFunctionCall", + "src": "4799:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4791:4:37", + "nodeType": "YulIdentifier", + "src": "4791:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4889:6:37", + "nodeType": "YulIdentifier", + "src": "4889:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4902:9:37", + "nodeType": "YulIdentifier", + "src": "4902:9:37" + }, + { + "kind": "number", + "nativeSrc": "4913:1:37", + "nodeType": "YulLiteral", + "src": "4913:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4898:3:37", + "nodeType": "YulIdentifier", + "src": "4898:3:37" + }, + "nativeSrc": "4898:17:37", + "nodeType": "YulFunctionCall", + "src": "4898:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack", + "nativeSrc": "4827:61:37", + "nodeType": "YulIdentifier", + "src": "4827:61:37" + }, + "nativeSrc": "4827:89:37", + "nodeType": "YulFunctionCall", + "src": "4827:89:37" + }, + "nativeSrc": "4827:89:37", + "nodeType": "YulExpressionStatement", + "src": "4827:89:37" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IVerifier_$7453__to_t_address__fromStack_reversed", + "nativeSrc": "4665:258:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4753:9:37", + "nodeType": "YulTypedName", + "src": "4753:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4765:6:37", + "nodeType": "YulTypedName", + "src": "4765:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4776:4:37", + "nodeType": "YulTypedName", + "src": "4776:4:37", + "type": "" + } + ], + "src": "4665:258:37" + }, + { + "body": { + "nativeSrc": "4994:53:37", + "nodeType": "YulBlock", + "src": "4994:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5011:3:37", + "nodeType": "YulIdentifier", + "src": "5011:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5034:5:37", + "nodeType": "YulIdentifier", + "src": "5034:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "5016:17:37", + "nodeType": "YulIdentifier", + "src": "5016:17:37" + }, + "nativeSrc": "5016:24:37", + "nodeType": "YulFunctionCall", + "src": "5016:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5004:6:37", + "nodeType": "YulIdentifier", + "src": "5004:6:37" + }, + "nativeSrc": "5004:37:37", + "nodeType": "YulFunctionCall", + "src": "5004:37:37" + }, + "nativeSrc": "5004:37:37", + "nodeType": "YulExpressionStatement", + "src": "5004:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4929:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4982:5:37", + "nodeType": "YulTypedName", + "src": "4982:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4989:3:37", + "nodeType": "YulTypedName", + "src": "4989:3:37", + "type": "" + } + ], + "src": "4929:118:37" + }, + { + "body": { + "nativeSrc": "5098:32:37", + "nodeType": "YulBlock", + "src": "5098:32:37", + "statements": [ + { + "nativeSrc": "5108:16:37", + "nodeType": "YulAssignment", + "src": "5108:16:37", + "value": { + "name": "value", + "nativeSrc": "5119:5:37", + "nodeType": "YulIdentifier", + "src": "5119:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "5108:7:37", + "nodeType": "YulIdentifier", + "src": "5108:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "5053:77:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5080:5:37", + "nodeType": "YulTypedName", + "src": "5080:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "5090:7:37", + "nodeType": "YulTypedName", + "src": "5090:7:37", + "type": "" + } + ], + "src": "5053:77:37" + }, + { + "body": { + "nativeSrc": "5201:53:37", + "nodeType": "YulBlock", + "src": "5201:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5218:3:37", + "nodeType": "YulIdentifier", + "src": "5218:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5241:5:37", + "nodeType": "YulIdentifier", + "src": "5241:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "5223:17:37", + "nodeType": "YulIdentifier", + "src": "5223:17:37" + }, + "nativeSrc": "5223:24:37", + "nodeType": "YulFunctionCall", + "src": "5223:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5211:6:37", + "nodeType": "YulIdentifier", + "src": "5211:6:37" + }, + "nativeSrc": "5211:37:37", + "nodeType": "YulFunctionCall", + "src": "5211:37:37" + }, + "nativeSrc": "5211:37:37", + "nodeType": "YulExpressionStatement", + "src": "5211:37:37" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "5136:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5189:5:37", + "nodeType": "YulTypedName", + "src": "5189:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5196:3:37", + "nodeType": "YulTypedName", + "src": "5196:3:37", + "type": "" + } + ], + "src": "5136:118:37" + }, + { + "body": { + "nativeSrc": "5460:389:37", + "nodeType": "YulBlock", + "src": "5460:389:37", + "statements": [ + { + "nativeSrc": "5470:27:37", + "nodeType": "YulAssignment", + "src": "5470:27:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5482:9:37", + "nodeType": "YulIdentifier", + "src": "5482:9:37" + }, + { + "kind": "number", + "nativeSrc": "5493:3:37", + "nodeType": "YulLiteral", + "src": "5493:3:37", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5478:3:37", + "nodeType": "YulIdentifier", + "src": "5478:3:37" + }, + "nativeSrc": "5478:19:37", + "nodeType": "YulFunctionCall", + "src": "5478:19:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5470:4:37", + "nodeType": "YulIdentifier", + "src": "5470:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5551:6:37", + "nodeType": "YulIdentifier", + "src": "5551:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5564:9:37", + "nodeType": "YulIdentifier", + "src": "5564:9:37" + }, + { + "kind": "number", + "nativeSrc": "5575:1:37", + "nodeType": "YulLiteral", + "src": "5575:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5560:3:37", + "nodeType": "YulIdentifier", + "src": "5560:3:37" + }, + "nativeSrc": "5560:17:37", + "nodeType": "YulFunctionCall", + "src": "5560:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "5507:43:37", + "nodeType": "YulIdentifier", + "src": "5507:43:37" + }, + "nativeSrc": "5507:71:37", + "nodeType": "YulFunctionCall", + "src": "5507:71:37" + }, + "nativeSrc": "5507:71:37", + "nodeType": "YulExpressionStatement", + "src": "5507:71:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "5650:6:37", + "nodeType": "YulIdentifier", + "src": "5650:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5663:9:37", + "nodeType": "YulIdentifier", + "src": "5663:9:37" + }, + { + "kind": "number", + "nativeSrc": "5674:2:37", + "nodeType": "YulLiteral", + "src": "5674:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5659:3:37", + "nodeType": "YulIdentifier", + "src": "5659:3:37" + }, + "nativeSrc": "5659:18:37", + "nodeType": "YulFunctionCall", + "src": "5659:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack", + "nativeSrc": "5588:61:37", + "nodeType": "YulIdentifier", + "src": "5588:61:37" + }, + "nativeSrc": "5588:90:37", + "nodeType": "YulFunctionCall", + "src": "5588:90:37" + }, + "nativeSrc": "5588:90:37", + "nodeType": "YulExpressionStatement", + "src": "5588:90:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "5732:6:37", + "nodeType": "YulIdentifier", + "src": "5732:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5745:9:37", + "nodeType": "YulIdentifier", + "src": "5745:9:37" + }, + { + "kind": "number", + "nativeSrc": "5756:2:37", + "nodeType": "YulLiteral", + "src": "5756:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5741:3:37", + "nodeType": "YulIdentifier", + "src": "5741:3:37" + }, + "nativeSrc": "5741:18:37", + "nodeType": "YulFunctionCall", + "src": "5741:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "5688:43:37", + "nodeType": "YulIdentifier", + "src": "5688:43:37" + }, + "nativeSrc": "5688:72:37", + "nodeType": "YulFunctionCall", + "src": "5688:72:37" + }, + "nativeSrc": "5688:72:37", + "nodeType": "YulExpressionStatement", + "src": "5688:72:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "5814:6:37", + "nodeType": "YulIdentifier", + "src": "5814:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5827:9:37", + "nodeType": "YulIdentifier", + "src": "5827:9:37" + }, + { + "kind": "number", + "nativeSrc": "5838:2:37", + "nodeType": "YulLiteral", + "src": "5838:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5823:3:37", + "nodeType": "YulIdentifier", + "src": "5823:3:37" + }, + "nativeSrc": "5823:18:37", + "nodeType": "YulFunctionCall", + "src": "5823:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "5770:43:37", + "nodeType": "YulIdentifier", + "src": "5770:43:37" + }, + "nativeSrc": "5770:72:37", + "nodeType": "YulFunctionCall", + "src": "5770:72:37" + }, + "nativeSrc": "5770:72:37", + "nodeType": "YulExpressionStatement", + "src": "5770:72:37" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_contract$_IVerifier_$7453_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "5260:589:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5408:9:37", + "nodeType": "YulTypedName", + "src": "5408:9:37", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "5420:6:37", + "nodeType": "YulTypedName", + "src": "5420:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "5428:6:37", + "nodeType": "YulTypedName", + "src": "5428:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5436:6:37", + "nodeType": "YulTypedName", + "src": "5436:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5444:6:37", + "nodeType": "YulTypedName", + "src": "5444:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5455:4:37", + "nodeType": "YulTypedName", + "src": "5455:4:37", + "type": "" + } + ], + "src": "5260:589:37" + }, + { + "body": { + "nativeSrc": "5921:263:37", + "nodeType": "YulBlock", + "src": "5921:263:37", + "statements": [ + { + "body": { + "nativeSrc": "5967:83:37", + "nodeType": "YulBlock", + "src": "5967:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5969:77:37", + "nodeType": "YulIdentifier", + "src": "5969:77:37" + }, + "nativeSrc": "5969:79:37", + "nodeType": "YulFunctionCall", + "src": "5969:79:37" + }, + "nativeSrc": "5969:79:37", + "nodeType": "YulExpressionStatement", + "src": "5969:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5942:7:37", + "nodeType": "YulIdentifier", + "src": "5942:7:37" + }, + { + "name": "headStart", + "nativeSrc": "5951:9:37", + "nodeType": "YulIdentifier", + "src": "5951:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5938:3:37", + "nodeType": "YulIdentifier", + "src": "5938:3:37" + }, + "nativeSrc": "5938:23:37", + "nodeType": "YulFunctionCall", + "src": "5938:23:37" + }, + { + "kind": "number", + "nativeSrc": "5963:2:37", + "nodeType": "YulLiteral", + "src": "5963:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5934:3:37", + "nodeType": "YulIdentifier", + "src": "5934:3:37" + }, + "nativeSrc": "5934:32:37", + "nodeType": "YulFunctionCall", + "src": "5934:32:37" + }, + "nativeSrc": "5931:119:37", + "nodeType": "YulIf", + "src": "5931:119:37" + }, + { + "nativeSrc": "6060:117:37", + "nodeType": "YulBlock", + "src": "6060:117:37", + "statements": [ + { + "nativeSrc": "6075:15:37", + "nodeType": "YulVariableDeclaration", + "src": "6075:15:37", + "value": { + "kind": "number", + "nativeSrc": "6089:1:37", + "nodeType": "YulLiteral", + "src": "6089:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6079:6:37", + "nodeType": "YulTypedName", + "src": "6079:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6104:63:37", + "nodeType": "YulAssignment", + "src": "6104:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6139:9:37", + "nodeType": "YulIdentifier", + "src": "6139:9:37" + }, + { + "name": "offset", + "nativeSrc": "6150:6:37", + "nodeType": "YulIdentifier", + "src": "6150:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6135:3:37", + "nodeType": "YulIdentifier", + "src": "6135:3:37" + }, + "nativeSrc": "6135:22:37", + "nodeType": "YulFunctionCall", + "src": "6135:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "6159:7:37", + "nodeType": "YulIdentifier", + "src": "6159:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6114:20:37", + "nodeType": "YulIdentifier", + "src": "6114:20:37" + }, + "nativeSrc": "6114:53:37", + "nodeType": "YulFunctionCall", + "src": "6114:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6104:6:37", + "nodeType": "YulIdentifier", + "src": "6104:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "5855:329:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5891:9:37", + "nodeType": "YulTypedName", + "src": "5891:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5902:7:37", + "nodeType": "YulTypedName", + "src": "5902:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5914:6:37", + "nodeType": "YulTypedName", + "src": "5914:6:37", + "type": "" + } + ], + "src": "5855:329:37" + }, + { + "body": { + "nativeSrc": "6232:78:37", + "nodeType": "YulBlock", + "src": "6232:78:37", + "statements": [ + { + "body": { + "nativeSrc": "6288:16:37", + "nodeType": "YulBlock", + "src": "6288:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6297:1:37", + "nodeType": "YulLiteral", + "src": "6297:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6300:1:37", + "nodeType": "YulLiteral", + "src": "6300:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6290:6:37", + "nodeType": "YulIdentifier", + "src": "6290:6:37" + }, + "nativeSrc": "6290:12:37", + "nodeType": "YulFunctionCall", + "src": "6290:12:37" + }, + "nativeSrc": "6290:12:37", + "nodeType": "YulExpressionStatement", + "src": "6290:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6255:5:37", + "nodeType": "YulIdentifier", + "src": "6255:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6279:5:37", + "nodeType": "YulIdentifier", + "src": "6279:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "6262:16:37", + "nodeType": "YulIdentifier", + "src": "6262:16:37" + }, + "nativeSrc": "6262:23:37", + "nodeType": "YulFunctionCall", + "src": "6262:23:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "6252:2:37", + "nodeType": "YulIdentifier", + "src": "6252:2:37" + }, + "nativeSrc": "6252:34:37", + "nodeType": "YulFunctionCall", + "src": "6252:34:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "6245:6:37", + "nodeType": "YulIdentifier", + "src": "6245:6:37" + }, + "nativeSrc": "6245:42:37", + "nodeType": "YulFunctionCall", + "src": "6245:42:37" + }, + "nativeSrc": "6242:62:37", + "nodeType": "YulIf", + "src": "6242:62:37" + } + ] + }, + "name": "validator_revert_t_uint48", + "nativeSrc": "6190:120:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6225:5:37", + "nodeType": "YulTypedName", + "src": "6225:5:37", + "type": "" + } + ], + "src": "6190:120:37" + }, + { + "body": { + "nativeSrc": "6367:86:37", + "nodeType": "YulBlock", + "src": "6367:86:37", + "statements": [ + { + "nativeSrc": "6377:29:37", + "nodeType": "YulAssignment", + "src": "6377:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "6399:6:37", + "nodeType": "YulIdentifier", + "src": "6399:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6386:12:37", + "nodeType": "YulIdentifier", + "src": "6386:12:37" + }, + "nativeSrc": "6386:20:37", + "nodeType": "YulFunctionCall", + "src": "6386:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "6377:5:37", + "nodeType": "YulIdentifier", + "src": "6377:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6441:5:37", + "nodeType": "YulIdentifier", + "src": "6441:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_uint48", + "nativeSrc": "6415:25:37", + "nodeType": "YulIdentifier", + "src": "6415:25:37" + }, + "nativeSrc": "6415:32:37", + "nodeType": "YulFunctionCall", + "src": "6415:32:37" + }, + "nativeSrc": "6415:32:37", + "nodeType": "YulExpressionStatement", + "src": "6415:32:37" + } + ] + }, + "name": "abi_decode_t_uint48", + "nativeSrc": "6316:137:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "6345:6:37", + "nodeType": "YulTypedName", + "src": "6345:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "6353:3:37", + "nodeType": "YulTypedName", + "src": "6353:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "6361:5:37", + "nodeType": "YulTypedName", + "src": "6361:5:37", + "type": "" + } + ], + "src": "6316:137:37" + }, + { + "body": { + "nativeSrc": "6524:262:37", + "nodeType": "YulBlock", + "src": "6524:262:37", + "statements": [ + { + "body": { + "nativeSrc": "6570:83:37", + "nodeType": "YulBlock", + "src": "6570:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "6572:77:37", + "nodeType": "YulIdentifier", + "src": "6572:77:37" + }, + "nativeSrc": "6572:79:37", + "nodeType": "YulFunctionCall", + "src": "6572:79:37" + }, + "nativeSrc": "6572:79:37", + "nodeType": "YulExpressionStatement", + "src": "6572:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6545:7:37", + "nodeType": "YulIdentifier", + "src": "6545:7:37" + }, + { + "name": "headStart", + "nativeSrc": "6554:9:37", + "nodeType": "YulIdentifier", + "src": "6554:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6541:3:37", + "nodeType": "YulIdentifier", + "src": "6541:3:37" + }, + "nativeSrc": "6541:23:37", + "nodeType": "YulFunctionCall", + "src": "6541:23:37" + }, + { + "kind": "number", + "nativeSrc": "6566:2:37", + "nodeType": "YulLiteral", + "src": "6566:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6537:3:37", + "nodeType": "YulIdentifier", + "src": "6537:3:37" + }, + "nativeSrc": "6537:32:37", + "nodeType": "YulFunctionCall", + "src": "6537:32:37" + }, + "nativeSrc": "6534:119:37", + "nodeType": "YulIf", + "src": "6534:119:37" + }, + { + "nativeSrc": "6663:116:37", + "nodeType": "YulBlock", + "src": "6663:116:37", + "statements": [ + { + "nativeSrc": "6678:15:37", + "nodeType": "YulVariableDeclaration", + "src": "6678:15:37", + "value": { + "kind": "number", + "nativeSrc": "6692:1:37", + "nodeType": "YulLiteral", + "src": "6692:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6682:6:37", + "nodeType": "YulTypedName", + "src": "6682:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "6707:62:37", + "nodeType": "YulAssignment", + "src": "6707:62:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6741:9:37", + "nodeType": "YulIdentifier", + "src": "6741:9:37" + }, + { + "name": "offset", + "nativeSrc": "6752:6:37", + "nodeType": "YulIdentifier", + "src": "6752:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6737:3:37", + "nodeType": "YulIdentifier", + "src": "6737:3:37" + }, + "nativeSrc": "6737:22:37", + "nodeType": "YulFunctionCall", + "src": "6737:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "6761:7:37", + "nodeType": "YulIdentifier", + "src": "6761:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint48", + "nativeSrc": "6717:19:37", + "nodeType": "YulIdentifier", + "src": "6717:19:37" + }, + "nativeSrc": "6717:52:37", + "nodeType": "YulFunctionCall", + "src": "6717:52:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6707:6:37", + "nodeType": "YulIdentifier", + "src": "6707:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint48", + "nativeSrc": "6459:327:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6494:9:37", + "nodeType": "YulTypedName", + "src": "6494:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "6505:7:37", + "nodeType": "YulTypedName", + "src": "6505:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6517:6:37", + "nodeType": "YulTypedName", + "src": "6517:6:37", + "type": "" + } + ], + "src": "6459:327:37" + }, + { + "body": { + "nativeSrc": "6873:66:37", + "nodeType": "YulBlock", + "src": "6873:66:37", + "statements": [ + { + "nativeSrc": "6883:50:37", + "nodeType": "YulAssignment", + "src": "6883:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6927:5:37", + "nodeType": "YulIdentifier", + "src": "6927:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "6896:30:37", + "nodeType": "YulIdentifier", + "src": "6896:30:37" + }, + "nativeSrc": "6896:37:37", + "nodeType": "YulFunctionCall", + "src": "6896:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "6883:9:37", + "nodeType": "YulIdentifier", + "src": "6883:9:37" + } + ] + } + ] + }, + "name": "convert_t_contract$_ISciRegistry_$7088_to_t_address", + "nativeSrc": "6792:147:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6853:5:37", + "nodeType": "YulTypedName", + "src": "6853:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "6863:9:37", + "nodeType": "YulTypedName", + "src": "6863:9:37", + "type": "" + } + ], + "src": "6792:147:37" + }, + { + "body": { + "nativeSrc": "7031:87:37", + "nodeType": "YulBlock", + "src": "7031:87:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7048:3:37", + "nodeType": "YulIdentifier", + "src": "7048:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7105:5:37", + "nodeType": "YulIdentifier", + "src": "7105:5:37" + } + ], + "functionName": { + "name": "convert_t_contract$_ISciRegistry_$7088_to_t_address", + "nativeSrc": "7053:51:37", + "nodeType": "YulIdentifier", + "src": "7053:51:37" + }, + "nativeSrc": "7053:58:37", + "nodeType": "YulFunctionCall", + "src": "7053:58:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7041:6:37", + "nodeType": "YulIdentifier", + "src": "7041:6:37" + }, + "nativeSrc": "7041:71:37", + "nodeType": "YulFunctionCall", + "src": "7041:71:37" + }, + "nativeSrc": "7041:71:37", + "nodeType": "YulExpressionStatement", + "src": "7041:71:37" + } + ] + }, + "name": "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack", + "nativeSrc": "6945:173:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7019:5:37", + "nodeType": "YulTypedName", + "src": "7019:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "7026:3:37", + "nodeType": "YulTypedName", + "src": "7026:3:37", + "type": "" + } + ], + "src": "6945:173:37" + }, + { + "body": { + "nativeSrc": "7243:145:37", + "nodeType": "YulBlock", + "src": "7243:145:37", + "statements": [ + { + "nativeSrc": "7253:26:37", + "nodeType": "YulAssignment", + "src": "7253:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7265:9:37", + "nodeType": "YulIdentifier", + "src": "7265:9:37" + }, + { + "kind": "number", + "nativeSrc": "7276:2:37", + "nodeType": "YulLiteral", + "src": "7276:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7261:3:37", + "nodeType": "YulIdentifier", + "src": "7261:3:37" + }, + "nativeSrc": "7261:18:37", + "nodeType": "YulFunctionCall", + "src": "7261:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7253:4:37", + "nodeType": "YulIdentifier", + "src": "7253:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7354:6:37", + "nodeType": "YulIdentifier", + "src": "7354:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7367:9:37", + "nodeType": "YulIdentifier", + "src": "7367:9:37" + }, + { + "kind": "number", + "nativeSrc": "7378:1:37", + "nodeType": "YulLiteral", + "src": "7378:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7363:3:37", + "nodeType": "YulIdentifier", + "src": "7363:3:37" + }, + "nativeSrc": "7363:17:37", + "nodeType": "YulFunctionCall", + "src": "7363:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack", + "nativeSrc": "7289:64:37", + "nodeType": "YulIdentifier", + "src": "7289:64:37" + }, + "nativeSrc": "7289:92:37", + "nodeType": "YulFunctionCall", + "src": "7289:92:37" + }, + "nativeSrc": "7289:92:37", + "nodeType": "YulExpressionStatement", + "src": "7289:92:37" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed", + "nativeSrc": "7124:264:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7215:9:37", + "nodeType": "YulTypedName", + "src": "7215:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7227:6:37", + "nodeType": "YulTypedName", + "src": "7227:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7238:4:37", + "nodeType": "YulTypedName", + "src": "7238:4:37", + "type": "" + } + ], + "src": "7124:264:37" + }, + { + "body": { + "nativeSrc": "7492:124:37", + "nodeType": "YulBlock", + "src": "7492:124:37", + "statements": [ + { + "nativeSrc": "7502:26:37", + "nodeType": "YulAssignment", + "src": "7502:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7514:9:37", + "nodeType": "YulIdentifier", + "src": "7514:9:37" + }, + { + "kind": "number", + "nativeSrc": "7525:2:37", + "nodeType": "YulLiteral", + "src": "7525:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7510:3:37", + "nodeType": "YulIdentifier", + "src": "7510:3:37" + }, + "nativeSrc": "7510:18:37", + "nodeType": "YulFunctionCall", + "src": "7510:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7502:4:37", + "nodeType": "YulIdentifier", + "src": "7502:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7582:6:37", + "nodeType": "YulIdentifier", + "src": "7582:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7595:9:37", + "nodeType": "YulIdentifier", + "src": "7595:9:37" + }, + { + "kind": "number", + "nativeSrc": "7606:1:37", + "nodeType": "YulLiteral", + "src": "7606:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7591:3:37", + "nodeType": "YulIdentifier", + "src": "7591:3:37" + }, + "nativeSrc": "7591:17:37", + "nodeType": "YulFunctionCall", + "src": "7591:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "7538:43:37", + "nodeType": "YulIdentifier", + "src": "7538:43:37" + }, + "nativeSrc": "7538:71:37", + "nodeType": "YulFunctionCall", + "src": "7538:71:37" + }, + "nativeSrc": "7538:71:37", + "nodeType": "YulExpressionStatement", + "src": "7538:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "7394:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7464:9:37", + "nodeType": "YulTypedName", + "src": "7464:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7476:6:37", + "nodeType": "YulTypedName", + "src": "7476:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7487:4:37", + "nodeType": "YulTypedName", + "src": "7487:4:37", + "type": "" + } + ], + "src": "7394:222:37" + }, + { + "body": { + "nativeSrc": "7744:202:37", + "nodeType": "YulBlock", + "src": "7744:202:37", + "statements": [ + { + "nativeSrc": "7754:26:37", + "nodeType": "YulAssignment", + "src": "7754:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7766:9:37", + "nodeType": "YulIdentifier", + "src": "7766:9:37" + }, + { + "kind": "number", + "nativeSrc": "7777:2:37", + "nodeType": "YulLiteral", + "src": "7777:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7762:3:37", + "nodeType": "YulIdentifier", + "src": "7762:3:37" + }, + "nativeSrc": "7762:18:37", + "nodeType": "YulFunctionCall", + "src": "7762:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7754:4:37", + "nodeType": "YulIdentifier", + "src": "7754:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7832:6:37", + "nodeType": "YulIdentifier", + "src": "7832:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7845:9:37", + "nodeType": "YulIdentifier", + "src": "7845:9:37" + }, + { + "kind": "number", + "nativeSrc": "7856:1:37", + "nodeType": "YulLiteral", + "src": "7856:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7841:3:37", + "nodeType": "YulIdentifier", + "src": "7841:3:37" + }, + "nativeSrc": "7841:17:37", + "nodeType": "YulFunctionCall", + "src": "7841:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint48_to_t_uint48_fromStack", + "nativeSrc": "7790:41:37", + "nodeType": "YulIdentifier", + "src": "7790:41:37" + }, + "nativeSrc": "7790:69:37", + "nodeType": "YulFunctionCall", + "src": "7790:69:37" + }, + "nativeSrc": "7790:69:37", + "nodeType": "YulExpressionStatement", + "src": "7790:69:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "7911:6:37", + "nodeType": "YulIdentifier", + "src": "7911:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7924:9:37", + "nodeType": "YulIdentifier", + "src": "7924:9:37" + }, + { + "kind": "number", + "nativeSrc": "7935:2:37", + "nodeType": "YulLiteral", + "src": "7935:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7920:3:37", + "nodeType": "YulIdentifier", + "src": "7920:3:37" + }, + "nativeSrc": "7920:18:37", + "nodeType": "YulFunctionCall", + "src": "7920:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint48_to_t_uint48_fromStack", + "nativeSrc": "7869:41:37", + "nodeType": "YulIdentifier", + "src": "7869:41:37" + }, + "nativeSrc": "7869:70:37", + "nodeType": "YulFunctionCall", + "src": "7869:70:37" + }, + "nativeSrc": "7869:70:37", + "nodeType": "YulExpressionStatement", + "src": "7869:70:37" + } + ] + }, + "name": "abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed", + "nativeSrc": "7622:324:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7708:9:37", + "nodeType": "YulTypedName", + "src": "7708:9:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "7720:6:37", + "nodeType": "YulTypedName", + "src": "7720:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7728:6:37", + "nodeType": "YulTypedName", + "src": "7728:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7739:4:37", + "nodeType": "YulTypedName", + "src": "7739:4:37", + "type": "" + } + ], + "src": "7622:324:37" + }, + { + "body": { + "nativeSrc": "8050:124:37", + "nodeType": "YulBlock", + "src": "8050:124:37", + "statements": [ + { + "nativeSrc": "8060:26:37", + "nodeType": "YulAssignment", + "src": "8060:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8072:9:37", + "nodeType": "YulIdentifier", + "src": "8072:9:37" + }, + { + "kind": "number", + "nativeSrc": "8083:2:37", + "nodeType": "YulLiteral", + "src": "8083:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8068:3:37", + "nodeType": "YulIdentifier", + "src": "8068:3:37" + }, + "nativeSrc": "8068:18:37", + "nodeType": "YulFunctionCall", + "src": "8068:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8060:4:37", + "nodeType": "YulIdentifier", + "src": "8060:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8140:6:37", + "nodeType": "YulIdentifier", + "src": "8140:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8153:9:37", + "nodeType": "YulIdentifier", + "src": "8153:9:37" + }, + { + "kind": "number", + "nativeSrc": "8164:1:37", + "nodeType": "YulLiteral", + "src": "8164:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8149:3:37", + "nodeType": "YulIdentifier", + "src": "8149:3:37" + }, + "nativeSrc": "8149:17:37", + "nodeType": "YulFunctionCall", + "src": "8149:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "8096:43:37", + "nodeType": "YulIdentifier", + "src": "8096:43:37" + }, + "nativeSrc": "8096:71:37", + "nodeType": "YulFunctionCall", + "src": "8096:71:37" + }, + "nativeSrc": "8096:71:37", + "nodeType": "YulExpressionStatement", + "src": "8096:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "7952:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8022:9:37", + "nodeType": "YulTypedName", + "src": "8022:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8034:6:37", + "nodeType": "YulTypedName", + "src": "8034:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8045:4:37", + "nodeType": "YulTypedName", + "src": "8045:4:37", + "type": "" + } + ], + "src": "7952:222:37" + }, + { + "body": { + "nativeSrc": "8243:51:37", + "nodeType": "YulBlock", + "src": "8243:51:37", + "statements": [ + { + "nativeSrc": "8253:35:37", + "nodeType": "YulAssignment", + "src": "8253:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8282:5:37", + "nodeType": "YulIdentifier", + "src": "8282:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "8264:17:37", + "nodeType": "YulIdentifier", + "src": "8264:17:37" + }, + "nativeSrc": "8264:24:37", + "nodeType": "YulFunctionCall", + "src": "8264:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "8253:7:37", + "nodeType": "YulIdentifier", + "src": "8253:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_contract$_IVerifier_$7453", + "nativeSrc": "8180:114:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8225:5:37", + "nodeType": "YulTypedName", + "src": "8225:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "8235:7:37", + "nodeType": "YulTypedName", + "src": "8235:7:37", + "type": "" + } + ], + "src": "8180:114:37" + }, + { + "body": { + "nativeSrc": "8361:97:37", + "nodeType": "YulBlock", + "src": "8361:97:37", + "statements": [ + { + "body": { + "nativeSrc": "8436:16:37", + "nodeType": "YulBlock", + "src": "8436:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8445:1:37", + "nodeType": "YulLiteral", + "src": "8445:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8448:1:37", + "nodeType": "YulLiteral", + "src": "8448:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8438:6:37", + "nodeType": "YulIdentifier", + "src": "8438:6:37" + }, + "nativeSrc": "8438:12:37", + "nodeType": "YulFunctionCall", + "src": "8438:12:37" + }, + "nativeSrc": "8438:12:37", + "nodeType": "YulExpressionStatement", + "src": "8438:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8384:5:37", + "nodeType": "YulIdentifier", + "src": "8384:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8427:5:37", + "nodeType": "YulIdentifier", + "src": "8427:5:37" + } + ], + "functionName": { + "name": "cleanup_t_contract$_IVerifier_$7453", + "nativeSrc": "8391:35:37", + "nodeType": "YulIdentifier", + "src": "8391:35:37" + }, + "nativeSrc": "8391:42:37", + "nodeType": "YulFunctionCall", + "src": "8391:42:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "8381:2:37", + "nodeType": "YulIdentifier", + "src": "8381:2:37" + }, + "nativeSrc": "8381:53:37", + "nodeType": "YulFunctionCall", + "src": "8381:53:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8374:6:37", + "nodeType": "YulIdentifier", + "src": "8374:6:37" + }, + "nativeSrc": "8374:61:37", + "nodeType": "YulFunctionCall", + "src": "8374:61:37" + }, + "nativeSrc": "8371:81:37", + "nodeType": "YulIf", + "src": "8371:81:37" + } + ] + }, + "name": "validator_revert_t_contract$_IVerifier_$7453", + "nativeSrc": "8300:158:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8354:5:37", + "nodeType": "YulTypedName", + "src": "8354:5:37", + "type": "" + } + ], + "src": "8300:158:37" + }, + { + "body": { + "nativeSrc": "8534:105:37", + "nodeType": "YulBlock", + "src": "8534:105:37", + "statements": [ + { + "nativeSrc": "8544:29:37", + "nodeType": "YulAssignment", + "src": "8544:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8566:6:37", + "nodeType": "YulIdentifier", + "src": "8566:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8553:12:37", + "nodeType": "YulIdentifier", + "src": "8553:12:37" + }, + "nativeSrc": "8553:20:37", + "nodeType": "YulFunctionCall", + "src": "8553:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "8544:5:37", + "nodeType": "YulIdentifier", + "src": "8544:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8627:5:37", + "nodeType": "YulIdentifier", + "src": "8627:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_contract$_IVerifier_$7453", + "nativeSrc": "8582:44:37", + "nodeType": "YulIdentifier", + "src": "8582:44:37" + }, + "nativeSrc": "8582:51:37", + "nodeType": "YulFunctionCall", + "src": "8582:51:37" + }, + "nativeSrc": "8582:51:37", + "nodeType": "YulExpressionStatement", + "src": "8582:51:37" + } + ] + }, + "name": "abi_decode_t_contract$_IVerifier_$7453", + "nativeSrc": "8464:175:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8512:6:37", + "nodeType": "YulTypedName", + "src": "8512:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8520:3:37", + "nodeType": "YulTypedName", + "src": "8520:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "8528:5:37", + "nodeType": "YulTypedName", + "src": "8528:5:37", + "type": "" + } + ], + "src": "8464:175:37" + }, + { + "body": { + "nativeSrc": "8746:409:37", + "nodeType": "YulBlock", + "src": "8746:409:37", + "statements": [ + { + "body": { + "nativeSrc": "8792:83:37", + "nodeType": "YulBlock", + "src": "8792:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "8794:77:37", + "nodeType": "YulIdentifier", + "src": "8794:77:37" + }, + "nativeSrc": "8794:79:37", + "nodeType": "YulFunctionCall", + "src": "8794:79:37" + }, + "nativeSrc": "8794:79:37", + "nodeType": "YulExpressionStatement", + "src": "8794:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8767:7:37", + "nodeType": "YulIdentifier", + "src": "8767:7:37" + }, + { + "name": "headStart", + "nativeSrc": "8776:9:37", + "nodeType": "YulIdentifier", + "src": "8776:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8763:3:37", + "nodeType": "YulIdentifier", + "src": "8763:3:37" + }, + "nativeSrc": "8763:23:37", + "nodeType": "YulFunctionCall", + "src": "8763:23:37" + }, + { + "kind": "number", + "nativeSrc": "8788:2:37", + "nodeType": "YulLiteral", + "src": "8788:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8759:3:37", + "nodeType": "YulIdentifier", + "src": "8759:3:37" + }, + "nativeSrc": "8759:32:37", + "nodeType": "YulFunctionCall", + "src": "8759:32:37" + }, + "nativeSrc": "8756:119:37", + "nodeType": "YulIf", + "src": "8756:119:37" + }, + { + "nativeSrc": "8885:117:37", + "nodeType": "YulBlock", + "src": "8885:117:37", + "statements": [ + { + "nativeSrc": "8900:15:37", + "nodeType": "YulVariableDeclaration", + "src": "8900:15:37", + "value": { + "kind": "number", + "nativeSrc": "8914:1:37", + "nodeType": "YulLiteral", + "src": "8914:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8904:6:37", + "nodeType": "YulTypedName", + "src": "8904:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "8929:63:37", + "nodeType": "YulAssignment", + "src": "8929:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8964:9:37", + "nodeType": "YulIdentifier", + "src": "8964:9:37" + }, + { + "name": "offset", + "nativeSrc": "8975:6:37", + "nodeType": "YulIdentifier", + "src": "8975:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8960:3:37", + "nodeType": "YulIdentifier", + "src": "8960:3:37" + }, + "nativeSrc": "8960:22:37", + "nodeType": "YulFunctionCall", + "src": "8960:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "8984:7:37", + "nodeType": "YulIdentifier", + "src": "8984:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "8939:20:37", + "nodeType": "YulIdentifier", + "src": "8939:20:37" + }, + "nativeSrc": "8939:53:37", + "nodeType": "YulFunctionCall", + "src": "8939:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8929:6:37", + "nodeType": "YulIdentifier", + "src": "8929:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "9012:136:37", + "nodeType": "YulBlock", + "src": "9012:136:37", + "statements": [ + { + "nativeSrc": "9027:16:37", + "nodeType": "YulVariableDeclaration", + "src": "9027:16:37", + "value": { + "kind": "number", + "nativeSrc": "9041:2:37", + "nodeType": "YulLiteral", + "src": "9041:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9031:6:37", + "nodeType": "YulTypedName", + "src": "9031:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "9057:81:37", + "nodeType": "YulAssignment", + "src": "9057:81:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9110:9:37", + "nodeType": "YulIdentifier", + "src": "9110:9:37" + }, + { + "name": "offset", + "nativeSrc": "9121:6:37", + "nodeType": "YulIdentifier", + "src": "9121:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9106:3:37", + "nodeType": "YulIdentifier", + "src": "9106:3:37" + }, + "nativeSrc": "9106:22:37", + "nodeType": "YulFunctionCall", + "src": "9106:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "9130:7:37", + "nodeType": "YulIdentifier", + "src": "9130:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IVerifier_$7453", + "nativeSrc": "9067:38:37", + "nodeType": "YulIdentifier", + "src": "9067:38:37" + }, + "nativeSrc": "9067:71:37", + "nodeType": "YulFunctionCall", + "src": "9067:71:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "9057:6:37", + "nodeType": "YulIdentifier", + "src": "9057:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_contract$_IVerifier_$7453", + "nativeSrc": "8645:510:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8708:9:37", + "nodeType": "YulTypedName", + "src": "8708:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8719:7:37", + "nodeType": "YulTypedName", + "src": "8719:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8731:6:37", + "nodeType": "YulTypedName", + "src": "8731:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8739:6:37", + "nodeType": "YulTypedName", + "src": "8739:6:37", + "type": "" + } + ], + "src": "8645:510:37" + }, + { + "body": { + "nativeSrc": "9244:391:37", + "nodeType": "YulBlock", + "src": "9244:391:37", + "statements": [ + { + "body": { + "nativeSrc": "9290:83:37", + "nodeType": "YulBlock", + "src": "9290:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "9292:77:37", + "nodeType": "YulIdentifier", + "src": "9292:77:37" + }, + "nativeSrc": "9292:79:37", + "nodeType": "YulFunctionCall", + "src": "9292:79:37" + }, + "nativeSrc": "9292:79:37", + "nodeType": "YulExpressionStatement", + "src": "9292:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9265:7:37", + "nodeType": "YulIdentifier", + "src": "9265:7:37" + }, + { + "name": "headStart", + "nativeSrc": "9274:9:37", + "nodeType": "YulIdentifier", + "src": "9274:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9261:3:37", + "nodeType": "YulIdentifier", + "src": "9261:3:37" + }, + "nativeSrc": "9261:23:37", + "nodeType": "YulFunctionCall", + "src": "9261:23:37" + }, + { + "kind": "number", + "nativeSrc": "9286:2:37", + "nodeType": "YulLiteral", + "src": "9286:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9257:3:37", + "nodeType": "YulIdentifier", + "src": "9257:3:37" + }, + "nativeSrc": "9257:32:37", + "nodeType": "YulFunctionCall", + "src": "9257:32:37" + }, + "nativeSrc": "9254:119:37", + "nodeType": "YulIf", + "src": "9254:119:37" + }, + { + "nativeSrc": "9383:117:37", + "nodeType": "YulBlock", + "src": "9383:117:37", + "statements": [ + { + "nativeSrc": "9398:15:37", + "nodeType": "YulVariableDeclaration", + "src": "9398:15:37", + "value": { + "kind": "number", + "nativeSrc": "9412:1:37", + "nodeType": "YulLiteral", + "src": "9412:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9402:6:37", + "nodeType": "YulTypedName", + "src": "9402:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "9427:63:37", + "nodeType": "YulAssignment", + "src": "9427:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9462:9:37", + "nodeType": "YulIdentifier", + "src": "9462:9:37" + }, + { + "name": "offset", + "nativeSrc": "9473:6:37", + "nodeType": "YulIdentifier", + "src": "9473:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9458:3:37", + "nodeType": "YulIdentifier", + "src": "9458:3:37" + }, + "nativeSrc": "9458:22:37", + "nodeType": "YulFunctionCall", + "src": "9458:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "9482:7:37", + "nodeType": "YulIdentifier", + "src": "9482:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "9437:20:37", + "nodeType": "YulIdentifier", + "src": "9437:20:37" + }, + "nativeSrc": "9437:53:37", + "nodeType": "YulFunctionCall", + "src": "9437:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9427:6:37", + "nodeType": "YulIdentifier", + "src": "9427:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "9510:118:37", + "nodeType": "YulBlock", + "src": "9510:118:37", + "statements": [ + { + "nativeSrc": "9525:16:37", + "nodeType": "YulVariableDeclaration", + "src": "9525:16:37", + "value": { + "kind": "number", + "nativeSrc": "9539:2:37", + "nodeType": "YulLiteral", + "src": "9539:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9529:6:37", + "nodeType": "YulTypedName", + "src": "9529:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "9555:63:37", + "nodeType": "YulAssignment", + "src": "9555:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9590:9:37", + "nodeType": "YulIdentifier", + "src": "9590:9:37" + }, + { + "name": "offset", + "nativeSrc": "9601:6:37", + "nodeType": "YulIdentifier", + "src": "9601:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9586:3:37", + "nodeType": "YulIdentifier", + "src": "9586:3:37" + }, + "nativeSrc": "9586:22:37", + "nodeType": "YulFunctionCall", + "src": "9586:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "9610:7:37", + "nodeType": "YulIdentifier", + "src": "9610:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "9565:20:37", + "nodeType": "YulIdentifier", + "src": "9565:20:37" + }, + "nativeSrc": "9565:53:37", + "nodeType": "YulFunctionCall", + "src": "9565:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "9555:6:37", + "nodeType": "YulIdentifier", + "src": "9555:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bytes32", + "nativeSrc": "9161:474:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9206:9:37", + "nodeType": "YulTypedName", + "src": "9206:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9217:7:37", + "nodeType": "YulTypedName", + "src": "9217:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9229:6:37", + "nodeType": "YulTypedName", + "src": "9229:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9237:6:37", + "nodeType": "YulTypedName", + "src": "9237:6:37", + "type": "" + } + ], + "src": "9161:474:37" + }, + { + "body": { + "nativeSrc": "9765:204:37", + "nodeType": "YulBlock", + "src": "9765:204:37", + "statements": [ + { + "nativeSrc": "9775:26:37", + "nodeType": "YulAssignment", + "src": "9775:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9787:9:37", + "nodeType": "YulIdentifier", + "src": "9787:9:37" + }, + { + "kind": "number", + "nativeSrc": "9798:2:37", + "nodeType": "YulLiteral", + "src": "9798:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9783:3:37", + "nodeType": "YulIdentifier", + "src": "9783:3:37" + }, + "nativeSrc": "9783:18:37", + "nodeType": "YulFunctionCall", + "src": "9783:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9775:4:37", + "nodeType": "YulIdentifier", + "src": "9775:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "9855:6:37", + "nodeType": "YulIdentifier", + "src": "9855:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9868:9:37", + "nodeType": "YulIdentifier", + "src": "9868:9:37" + }, + { + "kind": "number", + "nativeSrc": "9879:1:37", + "nodeType": "YulLiteral", + "src": "9879:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9864:3:37", + "nodeType": "YulIdentifier", + "src": "9864:3:37" + }, + "nativeSrc": "9864:17:37", + "nodeType": "YulFunctionCall", + "src": "9864:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "9811:43:37", + "nodeType": "YulIdentifier", + "src": "9811:43:37" + }, + "nativeSrc": "9811:71:37", + "nodeType": "YulFunctionCall", + "src": "9811:71:37" + }, + "nativeSrc": "9811:71:37", + "nodeType": "YulExpressionStatement", + "src": "9811:71:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "9934:6:37", + "nodeType": "YulIdentifier", + "src": "9934:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9947:9:37", + "nodeType": "YulIdentifier", + "src": "9947:9:37" + }, + { + "kind": "number", + "nativeSrc": "9958:2:37", + "nodeType": "YulLiteral", + "src": "9958:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9943:3:37", + "nodeType": "YulIdentifier", + "src": "9943:3:37" + }, + "nativeSrc": "9943:18:37", + "nodeType": "YulFunctionCall", + "src": "9943:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint48_to_t_uint48_fromStack", + "nativeSrc": "9892:41:37", + "nodeType": "YulIdentifier", + "src": "9892:41:37" + }, + "nativeSrc": "9892:70:37", + "nodeType": "YulFunctionCall", + "src": "9892:70:37" + }, + "nativeSrc": "9892:70:37", + "nodeType": "YulExpressionStatement", + "src": "9892:70:37" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed", + "nativeSrc": "9641:328:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9729:9:37", + "nodeType": "YulTypedName", + "src": "9729:9:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9741:6:37", + "nodeType": "YulTypedName", + "src": "9741:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "9749:6:37", + "nodeType": "YulTypedName", + "src": "9749:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9760:4:37", + "nodeType": "YulTypedName", + "src": "9760:4:37", + "type": "" + } + ], + "src": "9641:328:37" + }, + { + "body": { + "nativeSrc": "10093:537:37", + "nodeType": "YulBlock", + "src": "10093:537:37", + "statements": [ + { + "body": { + "nativeSrc": "10139:83:37", + "nodeType": "YulBlock", + "src": "10139:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "10141:77:37", + "nodeType": "YulIdentifier", + "src": "10141:77:37" + }, + "nativeSrc": "10141:79:37", + "nodeType": "YulFunctionCall", + "src": "10141:79:37" + }, + "nativeSrc": "10141:79:37", + "nodeType": "YulExpressionStatement", + "src": "10141:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10114:7:37", + "nodeType": "YulIdentifier", + "src": "10114:7:37" + }, + { + "name": "headStart", + "nativeSrc": "10123:9:37", + "nodeType": "YulIdentifier", + "src": "10123:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10110:3:37", + "nodeType": "YulIdentifier", + "src": "10110:3:37" + }, + "nativeSrc": "10110:23:37", + "nodeType": "YulFunctionCall", + "src": "10110:23:37" + }, + { + "kind": "number", + "nativeSrc": "10135:2:37", + "nodeType": "YulLiteral", + "src": "10135:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10106:3:37", + "nodeType": "YulIdentifier", + "src": "10106:3:37" + }, + "nativeSrc": "10106:32:37", + "nodeType": "YulFunctionCall", + "src": "10106:32:37" + }, + "nativeSrc": "10103:119:37", + "nodeType": "YulIf", + "src": "10103:119:37" + }, + { + "nativeSrc": "10232:117:37", + "nodeType": "YulBlock", + "src": "10232:117:37", + "statements": [ + { + "nativeSrc": "10247:15:37", + "nodeType": "YulVariableDeclaration", + "src": "10247:15:37", + "value": { + "kind": "number", + "nativeSrc": "10261:1:37", + "nodeType": "YulLiteral", + "src": "10261:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10251:6:37", + "nodeType": "YulTypedName", + "src": "10251:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "10276:63:37", + "nodeType": "YulAssignment", + "src": "10276:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10311:9:37", + "nodeType": "YulIdentifier", + "src": "10311:9:37" + }, + { + "name": "offset", + "nativeSrc": "10322:6:37", + "nodeType": "YulIdentifier", + "src": "10322:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10307:3:37", + "nodeType": "YulIdentifier", + "src": "10307:3:37" + }, + "nativeSrc": "10307:22:37", + "nodeType": "YulFunctionCall", + "src": "10307:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "10331:7:37", + "nodeType": "YulIdentifier", + "src": "10331:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "10286:20:37", + "nodeType": "YulIdentifier", + "src": "10286:20:37" + }, + "nativeSrc": "10286:53:37", + "nodeType": "YulFunctionCall", + "src": "10286:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10276:6:37", + "nodeType": "YulIdentifier", + "src": "10276:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "10359:118:37", + "nodeType": "YulBlock", + "src": "10359:118:37", + "statements": [ + { + "nativeSrc": "10374:16:37", + "nodeType": "YulVariableDeclaration", + "src": "10374:16:37", + "value": { + "kind": "number", + "nativeSrc": "10388:2:37", + "nodeType": "YulLiteral", + "src": "10388:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10378:6:37", + "nodeType": "YulTypedName", + "src": "10378:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "10404:63:37", + "nodeType": "YulAssignment", + "src": "10404:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10439:9:37", + "nodeType": "YulIdentifier", + "src": "10439:9:37" + }, + { + "name": "offset", + "nativeSrc": "10450:6:37", + "nodeType": "YulIdentifier", + "src": "10450:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10435:3:37", + "nodeType": "YulIdentifier", + "src": "10435:3:37" + }, + "nativeSrc": "10435:22:37", + "nodeType": "YulFunctionCall", + "src": "10435:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "10459:7:37", + "nodeType": "YulIdentifier", + "src": "10459:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "10414:20:37", + "nodeType": "YulIdentifier", + "src": "10414:20:37" + }, + "nativeSrc": "10414:53:37", + "nodeType": "YulFunctionCall", + "src": "10414:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "10404:6:37", + "nodeType": "YulIdentifier", + "src": "10404:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "10487:136:37", + "nodeType": "YulBlock", + "src": "10487:136:37", + "statements": [ + { + "nativeSrc": "10502:16:37", + "nodeType": "YulVariableDeclaration", + "src": "10502:16:37", + "value": { + "kind": "number", + "nativeSrc": "10516:2:37", + "nodeType": "YulLiteral", + "src": "10516:2:37", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10506:6:37", + "nodeType": "YulTypedName", + "src": "10506:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "10532:81:37", + "nodeType": "YulAssignment", + "src": "10532:81:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10585:9:37", + "nodeType": "YulIdentifier", + "src": "10585:9:37" + }, + { + "name": "offset", + "nativeSrc": "10596:6:37", + "nodeType": "YulIdentifier", + "src": "10596:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10581:3:37", + "nodeType": "YulIdentifier", + "src": "10581:3:37" + }, + "nativeSrc": "10581:22:37", + "nodeType": "YulFunctionCall", + "src": "10581:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "10605:7:37", + "nodeType": "YulIdentifier", + "src": "10605:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IVerifier_$7453", + "nativeSrc": "10542:38:37", + "nodeType": "YulIdentifier", + "src": "10542:38:37" + }, + "nativeSrc": "10542:71:37", + "nodeType": "YulFunctionCall", + "src": "10542:71:37" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "10532:6:37", + "nodeType": "YulIdentifier", + "src": "10532:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$7453", + "nativeSrc": "9975:655:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10047:9:37", + "nodeType": "YulTypedName", + "src": "10047:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10058:7:37", + "nodeType": "YulTypedName", + "src": "10058:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10070:6:37", + "nodeType": "YulTypedName", + "src": "10070:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10078:6:37", + "nodeType": "YulTypedName", + "src": "10078:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "10086:6:37", + "nodeType": "YulTypedName", + "src": "10086:6:37", + "type": "" + } + ], + "src": "9975:655:37" + }, + { + "body": { + "nativeSrc": "10664:152:37", + "nodeType": "YulBlock", + "src": "10664:152:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10681:1:37", + "nodeType": "YulLiteral", + "src": "10681:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10684:77:37", + "nodeType": "YulLiteral", + "src": "10684:77:37", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10674:6:37", + "nodeType": "YulIdentifier", + "src": "10674:6:37" + }, + "nativeSrc": "10674:88:37", + "nodeType": "YulFunctionCall", + "src": "10674:88:37" + }, + "nativeSrc": "10674:88:37", + "nodeType": "YulExpressionStatement", + "src": "10674:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10778:1:37", + "nodeType": "YulLiteral", + "src": "10778:1:37", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "10781:4:37", + "nodeType": "YulLiteral", + "src": "10781:4:37", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10771:6:37", + "nodeType": "YulIdentifier", + "src": "10771:6:37" + }, + "nativeSrc": "10771:15:37", + "nodeType": "YulFunctionCall", + "src": "10771:15:37" + }, + "nativeSrc": "10771:15:37", + "nodeType": "YulExpressionStatement", + "src": "10771:15:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10802:1:37", + "nodeType": "YulLiteral", + "src": "10802:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10805:4:37", + "nodeType": "YulLiteral", + "src": "10805:4:37", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10795:6:37", + "nodeType": "YulIdentifier", + "src": "10795:6:37" + }, + "nativeSrc": "10795:15:37", + "nodeType": "YulFunctionCall", + "src": "10795:15:37" + }, + "nativeSrc": "10795:15:37", + "nodeType": "YulExpressionStatement", + "src": "10795:15:37" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "10636:180:37", + "nodeType": "YulFunctionDefinition", + "src": "10636:180:37" + }, + { + "body": { + "nativeSrc": "10865:158:37", + "nodeType": "YulBlock", + "src": "10865:158:37", + "statements": [ + { + "nativeSrc": "10875:24:37", + "nodeType": "YulAssignment", + "src": "10875:24:37", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "10897:1:37", + "nodeType": "YulIdentifier", + "src": "10897:1:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "10880:16:37", + "nodeType": "YulIdentifier", + "src": "10880:16:37" + }, + "nativeSrc": "10880:19:37", + "nodeType": "YulFunctionCall", + "src": "10880:19:37" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "10875:1:37", + "nodeType": "YulIdentifier", + "src": "10875:1:37" + } + ] + }, + { + "nativeSrc": "10908:24:37", + "nodeType": "YulAssignment", + "src": "10908:24:37", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "10930:1:37", + "nodeType": "YulIdentifier", + "src": "10930:1:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "10913:16:37", + "nodeType": "YulIdentifier", + "src": "10913:16:37" + }, + "nativeSrc": "10913:19:37", + "nodeType": "YulFunctionCall", + "src": "10913:19:37" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "10908:1:37", + "nodeType": "YulIdentifier", + "src": "10908:1:37" + } + ] + }, + { + "nativeSrc": "10941:16:37", + "nodeType": "YulAssignment", + "src": "10941:16:37", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "10952:1:37", + "nodeType": "YulIdentifier", + "src": "10952:1:37" + }, + { + "name": "y", + "nativeSrc": "10955:1:37", + "nodeType": "YulIdentifier", + "src": "10955:1:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10948:3:37", + "nodeType": "YulIdentifier", + "src": "10948:3:37" + }, + "nativeSrc": "10948:9:37", + "nodeType": "YulFunctionCall", + "src": "10948:9:37" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "10941:3:37", + "nodeType": "YulIdentifier", + "src": "10941:3:37" + } + ] + }, + { + "body": { + "nativeSrc": "10994:22:37", + "nodeType": "YulBlock", + "src": "10994:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "10996:16:37", + "nodeType": "YulIdentifier", + "src": "10996:16:37" + }, + "nativeSrc": "10996:18:37", + "nodeType": "YulFunctionCall", + "src": "10996:18:37" + }, + "nativeSrc": "10996:18:37", + "nodeType": "YulExpressionStatement", + "src": "10996:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "sum", + "nativeSrc": "10973:3:37", + "nodeType": "YulIdentifier", + "src": "10973:3:37" + }, + { + "kind": "number", + "nativeSrc": "10978:14:37", + "nodeType": "YulLiteral", + "src": "10978:14:37", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10970:2:37", + "nodeType": "YulIdentifier", + "src": "10970:2:37" + }, + "nativeSrc": "10970:23:37", + "nodeType": "YulFunctionCall", + "src": "10970:23:37" + }, + "nativeSrc": "10967:49:37", + "nodeType": "YulIf", + "src": "10967:49:37" + } + ] + }, + "name": "checked_add_t_uint48", + "nativeSrc": "10822:201:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "10852:1:37", + "nodeType": "YulTypedName", + "src": "10852:1:37", + "type": "" + }, + { + "name": "y", + "nativeSrc": "10855:1:37", + "nodeType": "YulTypedName", + "src": "10855:1:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "10861:3:37", + "nodeType": "YulTypedName", + "src": "10861:3:37", + "type": "" + } + ], + "src": "10822:201:37" + }, + { + "body": { + "nativeSrc": "11092:80:37", + "nodeType": "YulBlock", + "src": "11092:80:37", + "statements": [ + { + "nativeSrc": "11102:22:37", + "nodeType": "YulAssignment", + "src": "11102:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "11117:6:37", + "nodeType": "YulIdentifier", + "src": "11117:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "11111:5:37", + "nodeType": "YulIdentifier", + "src": "11111:5:37" + }, + "nativeSrc": "11111:13:37", + "nodeType": "YulFunctionCall", + "src": "11111:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "11102:5:37", + "nodeType": "YulIdentifier", + "src": "11102:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "11160:5:37", + "nodeType": "YulIdentifier", + "src": "11160:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "11133:26:37", + "nodeType": "YulIdentifier", + "src": "11133:26:37" + }, + "nativeSrc": "11133:33:37", + "nodeType": "YulFunctionCall", + "src": "11133:33:37" + }, + "nativeSrc": "11133:33:37", + "nodeType": "YulExpressionStatement", + "src": "11133:33:37" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "11029:143:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "11070:6:37", + "nodeType": "YulTypedName", + "src": "11070:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "11078:3:37", + "nodeType": "YulTypedName", + "src": "11078:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "11086:5:37", + "nodeType": "YulTypedName", + "src": "11086:5:37", + "type": "" + } + ], + "src": "11029:143:37" + }, + { + "body": { + "nativeSrc": "11255:274:37", + "nodeType": "YulBlock", + "src": "11255:274:37", + "statements": [ + { + "body": { + "nativeSrc": "11301:83:37", + "nodeType": "YulBlock", + "src": "11301:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "11303:77:37", + "nodeType": "YulIdentifier", + "src": "11303:77:37" + }, + "nativeSrc": "11303:79:37", + "nodeType": "YulFunctionCall", + "src": "11303:79:37" + }, + "nativeSrc": "11303:79:37", + "nodeType": "YulExpressionStatement", + "src": "11303:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11276:7:37", + "nodeType": "YulIdentifier", + "src": "11276:7:37" + }, + { + "name": "headStart", + "nativeSrc": "11285:9:37", + "nodeType": "YulIdentifier", + "src": "11285:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11272:3:37", + "nodeType": "YulIdentifier", + "src": "11272:3:37" + }, + "nativeSrc": "11272:23:37", + "nodeType": "YulFunctionCall", + "src": "11272:23:37" + }, + { + "kind": "number", + "nativeSrc": "11297:2:37", + "nodeType": "YulLiteral", + "src": "11297:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11268:3:37", + "nodeType": "YulIdentifier", + "src": "11268:3:37" + }, + "nativeSrc": "11268:32:37", + "nodeType": "YulFunctionCall", + "src": "11268:32:37" + }, + "nativeSrc": "11265:119:37", + "nodeType": "YulIf", + "src": "11265:119:37" + }, + { + "nativeSrc": "11394:128:37", + "nodeType": "YulBlock", + "src": "11394:128:37", + "statements": [ + { + "nativeSrc": "11409:15:37", + "nodeType": "YulVariableDeclaration", + "src": "11409:15:37", + "value": { + "kind": "number", + "nativeSrc": "11423:1:37", + "nodeType": "YulLiteral", + "src": "11423:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11413:6:37", + "nodeType": "YulTypedName", + "src": "11413:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "11438:74:37", + "nodeType": "YulAssignment", + "src": "11438:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11484:9:37", + "nodeType": "YulIdentifier", + "src": "11484:9:37" + }, + { + "name": "offset", + "nativeSrc": "11495:6:37", + "nodeType": "YulIdentifier", + "src": "11495:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11480:3:37", + "nodeType": "YulIdentifier", + "src": "11480:3:37" + }, + "nativeSrc": "11480:22:37", + "nodeType": "YulFunctionCall", + "src": "11480:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "11504:7:37", + "nodeType": "YulIdentifier", + "src": "11504:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "11448:31:37", + "nodeType": "YulIdentifier", + "src": "11448:31:37" + }, + "nativeSrc": "11448:64:37", + "nodeType": "YulFunctionCall", + "src": "11448:64:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11438:6:37", + "nodeType": "YulIdentifier", + "src": "11438:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nativeSrc": "11178:351:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11225:9:37", + "nodeType": "YulTypedName", + "src": "11225:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11236:7:37", + "nodeType": "YulTypedName", + "src": "11236:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11248:6:37", + "nodeType": "YulTypedName", + "src": "11248:6:37", + "type": "" + } + ], + "src": "11178:351:37" + }, + { + "body": { + "nativeSrc": "11661:206:37", + "nodeType": "YulBlock", + "src": "11661:206:37", + "statements": [ + { + "nativeSrc": "11671:26:37", + "nodeType": "YulAssignment", + "src": "11671:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11683:9:37", + "nodeType": "YulIdentifier", + "src": "11683:9:37" + }, + { + "kind": "number", + "nativeSrc": "11694:2:37", + "nodeType": "YulLiteral", + "src": "11694:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11679:3:37", + "nodeType": "YulIdentifier", + "src": "11679:3:37" + }, + "nativeSrc": "11679:18:37", + "nodeType": "YulFunctionCall", + "src": "11679:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11671:4:37", + "nodeType": "YulIdentifier", + "src": "11671:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11751:6:37", + "nodeType": "YulIdentifier", + "src": "11751:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11764:9:37", + "nodeType": "YulIdentifier", + "src": "11764:9:37" + }, + { + "kind": "number", + "nativeSrc": "11775:1:37", + "nodeType": "YulLiteral", + "src": "11775:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11760:3:37", + "nodeType": "YulIdentifier", + "src": "11760:3:37" + }, + "nativeSrc": "11760:17:37", + "nodeType": "YulFunctionCall", + "src": "11760:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "11707:43:37", + "nodeType": "YulIdentifier", + "src": "11707:43:37" + }, + "nativeSrc": "11707:71:37", + "nodeType": "YulFunctionCall", + "src": "11707:71:37" + }, + "nativeSrc": "11707:71:37", + "nodeType": "YulExpressionStatement", + "src": "11707:71:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "11832:6:37", + "nodeType": "YulIdentifier", + "src": "11832:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11845:9:37", + "nodeType": "YulIdentifier", + "src": "11845:9:37" + }, + { + "kind": "number", + "nativeSrc": "11856:2:37", + "nodeType": "YulLiteral", + "src": "11856:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11841:3:37", + "nodeType": "YulIdentifier", + "src": "11841:3:37" + }, + "nativeSrc": "11841:18:37", + "nodeType": "YulFunctionCall", + "src": "11841:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "11788:43:37", + "nodeType": "YulIdentifier", + "src": "11788:43:37" + }, + "nativeSrc": "11788:72:37", + "nodeType": "YulFunctionCall", + "src": "11788:72:37" + }, + "nativeSrc": "11788:72:37", + "nodeType": "YulExpressionStatement", + "src": "11788:72:37" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", + "nativeSrc": "11535:332:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11625:9:37", + "nodeType": "YulTypedName", + "src": "11625:9:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11637:6:37", + "nodeType": "YulTypedName", + "src": "11637:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "11645:6:37", + "nodeType": "YulTypedName", + "src": "11645:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11656:4:37", + "nodeType": "YulTypedName", + "src": "11656:4:37", + "type": "" + } + ], + "src": "11535:332:37" + }, + { + "body": { + "nativeSrc": "11927:32:37", + "nodeType": "YulBlock", + "src": "11927:32:37", + "statements": [ + { + "nativeSrc": "11937:16:37", + "nodeType": "YulAssignment", + "src": "11937:16:37", + "value": { + "name": "value", + "nativeSrc": "11948:5:37", + "nodeType": "YulIdentifier", + "src": "11948:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "11937:7:37", + "nodeType": "YulIdentifier", + "src": "11937:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_rational_48_by_1", + "nativeSrc": "11873:86:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "11909:5:37", + "nodeType": "YulTypedName", + "src": "11909:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "11919:7:37", + "nodeType": "YulTypedName", + "src": "11919:7:37", + "type": "" + } + ], + "src": "11873:86:37" + }, + { + "body": { + "nativeSrc": "12008:43:37", + "nodeType": "YulBlock", + "src": "12008:43:37", + "statements": [ + { + "nativeSrc": "12018:27:37", + "nodeType": "YulAssignment", + "src": "12018:27:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "12033:5:37", + "nodeType": "YulIdentifier", + "src": "12033:5:37" + }, + { + "kind": "number", + "nativeSrc": "12040:4:37", + "nodeType": "YulLiteral", + "src": "12040:4:37", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12029:3:37", + "nodeType": "YulIdentifier", + "src": "12029:3:37" + }, + "nativeSrc": "12029:16:37", + "nodeType": "YulFunctionCall", + "src": "12029:16:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "12018:7:37", + "nodeType": "YulIdentifier", + "src": "12018:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nativeSrc": "11965:86:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "11990:5:37", + "nodeType": "YulTypedName", + "src": "11990:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "12000:7:37", + "nodeType": "YulTypedName", + "src": "12000:7:37", + "type": "" + } + ], + "src": "11965:86:37" + }, + { + "body": { + "nativeSrc": "12124:89:37", + "nodeType": "YulBlock", + "src": "12124:89:37", + "statements": [ + { + "nativeSrc": "12134:73:37", + "nodeType": "YulAssignment", + "src": "12134:73:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "12199:5:37", + "nodeType": "YulIdentifier", + "src": "12199:5:37" + } + ], + "functionName": { + "name": "cleanup_t_rational_48_by_1", + "nativeSrc": "12172:26:37", + "nodeType": "YulIdentifier", + "src": "12172:26:37" + }, + "nativeSrc": "12172:33:37", + "nodeType": "YulFunctionCall", + "src": "12172:33:37" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "12163:8:37", + "nodeType": "YulIdentifier", + "src": "12163:8:37" + }, + "nativeSrc": "12163:43:37", + "nodeType": "YulFunctionCall", + "src": "12163:43:37" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nativeSrc": "12147:15:37", + "nodeType": "YulIdentifier", + "src": "12147:15:37" + }, + "nativeSrc": "12147:60:37", + "nodeType": "YulFunctionCall", + "src": "12147:60:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "12134:9:37", + "nodeType": "YulIdentifier", + "src": "12134:9:37" + } + ] + } + ] + }, + "name": "convert_t_rational_48_by_1_to_t_uint8", + "nativeSrc": "12057:156:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "12104:5:37", + "nodeType": "YulTypedName", + "src": "12104:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "12114:9:37", + "nodeType": "YulTypedName", + "src": "12114:9:37", + "type": "" + } + ], + "src": "12057:156:37" + }, + { + "body": { + "nativeSrc": "12291:73:37", + "nodeType": "YulBlock", + "src": "12291:73:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12308:3:37", + "nodeType": "YulIdentifier", + "src": "12308:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "12351:5:37", + "nodeType": "YulIdentifier", + "src": "12351:5:37" + } + ], + "functionName": { + "name": "convert_t_rational_48_by_1_to_t_uint8", + "nativeSrc": "12313:37:37", + "nodeType": "YulIdentifier", + "src": "12313:37:37" + }, + "nativeSrc": "12313:44:37", + "nodeType": "YulFunctionCall", + "src": "12313:44:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12301:6:37", + "nodeType": "YulIdentifier", + "src": "12301:6:37" + }, + "nativeSrc": "12301:57:37", + "nodeType": "YulFunctionCall", + "src": "12301:57:37" + }, + "nativeSrc": "12301:57:37", + "nodeType": "YulExpressionStatement", + "src": "12301:57:37" + } + ] + }, + "name": "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack", + "nativeSrc": "12219:145:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "12279:5:37", + "nodeType": "YulTypedName", + "src": "12279:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "12286:3:37", + "nodeType": "YulTypedName", + "src": "12286:3:37", + "type": "" + } + ], + "src": "12219:145:37" + }, + { + "body": { + "nativeSrc": "12503:213:37", + "nodeType": "YulBlock", + "src": "12503:213:37", + "statements": [ + { + "nativeSrc": "12513:26:37", + "nodeType": "YulAssignment", + "src": "12513:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12525:9:37", + "nodeType": "YulIdentifier", + "src": "12525:9:37" + }, + { + "kind": "number", + "nativeSrc": "12536:2:37", + "nodeType": "YulLiteral", + "src": "12536:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12521:3:37", + "nodeType": "YulIdentifier", + "src": "12521:3:37" + }, + "nativeSrc": "12521:18:37", + "nodeType": "YulFunctionCall", + "src": "12521:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12513:4:37", + "nodeType": "YulIdentifier", + "src": "12513:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "12600:6:37", + "nodeType": "YulIdentifier", + "src": "12600:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12613:9:37", + "nodeType": "YulIdentifier", + "src": "12613:9:37" + }, + { + "kind": "number", + "nativeSrc": "12624:1:37", + "nodeType": "YulLiteral", + "src": "12624:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12609:3:37", + "nodeType": "YulIdentifier", + "src": "12609:3:37" + }, + "nativeSrc": "12609:17:37", + "nodeType": "YulFunctionCall", + "src": "12609:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack", + "nativeSrc": "12549:50:37", + "nodeType": "YulIdentifier", + "src": "12549:50:37" + }, + "nativeSrc": "12549:78:37", + "nodeType": "YulFunctionCall", + "src": "12549:78:37" + }, + "nativeSrc": "12549:78:37", + "nodeType": "YulExpressionStatement", + "src": "12549:78:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "12681:6:37", + "nodeType": "YulIdentifier", + "src": "12681:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12694:9:37", + "nodeType": "YulIdentifier", + "src": "12694:9:37" + }, + { + "kind": "number", + "nativeSrc": "12705:2:37", + "nodeType": "YulLiteral", + "src": "12705:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12690:3:37", + "nodeType": "YulIdentifier", + "src": "12690:3:37" + }, + "nativeSrc": "12690:18:37", + "nodeType": "YulFunctionCall", + "src": "12690:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "12637:43:37", + "nodeType": "YulIdentifier", + "src": "12637:43:37" + }, + "nativeSrc": "12637:72:37", + "nodeType": "YulFunctionCall", + "src": "12637:72:37" + }, + "nativeSrc": "12637:72:37", + "nodeType": "YulExpressionStatement", + "src": "12637:72:37" + } + ] + }, + "name": "abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed", + "nativeSrc": "12370:346:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12467:9:37", + "nodeType": "YulTypedName", + "src": "12467:9:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "12479:6:37", + "nodeType": "YulTypedName", + "src": "12479:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "12487:6:37", + "nodeType": "YulTypedName", + "src": "12487:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12498:4:37", + "nodeType": "YulTypedName", + "src": "12498:4:37", + "type": "" + } + ], + "src": "12370:346:37" + }, + { + "body": { + "nativeSrc": "12766:160:37", + "nodeType": "YulBlock", + "src": "12766:160:37", + "statements": [ + { + "nativeSrc": "12776:24:37", + "nodeType": "YulAssignment", + "src": "12776:24:37", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "12798:1:37", + "nodeType": "YulIdentifier", + "src": "12798:1:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "12781:16:37", + "nodeType": "YulIdentifier", + "src": "12781:16:37" + }, + "nativeSrc": "12781:19:37", + "nodeType": "YulFunctionCall", + "src": "12781:19:37" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "12776:1:37", + "nodeType": "YulIdentifier", + "src": "12776:1:37" + } + ] + }, + { + "nativeSrc": "12809:24:37", + "nodeType": "YulAssignment", + "src": "12809:24:37", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "12831:1:37", + "nodeType": "YulIdentifier", + "src": "12831:1:37" + } + ], + "functionName": { + "name": "cleanup_t_uint48", + "nativeSrc": "12814:16:37", + "nodeType": "YulIdentifier", + "src": "12814:16:37" + }, + "nativeSrc": "12814:19:37", + "nodeType": "YulFunctionCall", + "src": "12814:19:37" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "12809:1:37", + "nodeType": "YulIdentifier", + "src": "12809:1:37" + } + ] + }, + { + "nativeSrc": "12842:17:37", + "nodeType": "YulAssignment", + "src": "12842:17:37", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "12854:1:37", + "nodeType": "YulIdentifier", + "src": "12854:1:37" + }, + { + "name": "y", + "nativeSrc": "12857:1:37", + "nodeType": "YulIdentifier", + "src": "12857:1:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12850:3:37", + "nodeType": "YulIdentifier", + "src": "12850:3:37" + }, + "nativeSrc": "12850:9:37", + "nodeType": "YulFunctionCall", + "src": "12850:9:37" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "12842:4:37", + "nodeType": "YulIdentifier", + "src": "12842:4:37" + } + ] + }, + { + "body": { + "nativeSrc": "12897:22:37", + "nodeType": "YulBlock", + "src": "12897:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "12899:16:37", + "nodeType": "YulIdentifier", + "src": "12899:16:37" + }, + "nativeSrc": "12899:18:37", + "nodeType": "YulFunctionCall", + "src": "12899:18:37" + }, + "nativeSrc": "12899:18:37", + "nodeType": "YulExpressionStatement", + "src": "12899:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "12875:4:37", + "nodeType": "YulIdentifier", + "src": "12875:4:37" + }, + { + "kind": "number", + "nativeSrc": "12881:14:37", + "nodeType": "YulLiteral", + "src": "12881:14:37", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12872:2:37", + "nodeType": "YulIdentifier", + "src": "12872:2:37" + }, + "nativeSrc": "12872:24:37", + "nodeType": "YulFunctionCall", + "src": "12872:24:37" + }, + "nativeSrc": "12869:50:37", + "nodeType": "YulIf", + "src": "12869:50:37" + } + ] + }, + "name": "checked_sub_t_uint48", + "nativeSrc": "12722:204:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "12752:1:37", + "nodeType": "YulTypedName", + "src": "12752:1:37", + "type": "" + }, + { + "name": "y", + "nativeSrc": "12755:1:37", + "nodeType": "YulTypedName", + "src": "12755:1:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "12761:4:37", + "nodeType": "YulTypedName", + "src": "12761:4:37", + "type": "" + } + ], + "src": "12722:204:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint48(value) -> cleaned {\n cleaned := and(value, 0xffffffffffff)\n }\n\n function abi_encode_t_uint48_to_t_uint48_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint48(value))\n }\n\n function abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint48_to_t_uint48_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IVerifier_$7453_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IVerifier_$7453_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IVerifier_$7453__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_contract$_IVerifier_$7453_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_contract$_IVerifier_$7453_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_uint48(value) {\n if iszero(eq(value, cleanup_t_uint48(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint48(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint48(value)\n }\n\n function abi_decode_tuple_t_uint48(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint48(add(headStart, offset), dataEnd)\n }\n\n }\n\n function convert_t_contract$_ISciRegistry_$7088_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7088_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint48_to_t_uint48_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint48_to_t_uint48_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_contract$_IVerifier_$7453(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IVerifier_$7453(value) {\n if iszero(eq(value, cleanup_t_contract$_IVerifier_$7453(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IVerifier_$7453(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IVerifier_$7453(value)\n }\n\n function abi_decode_tuple_t_bytes32t_contract$_IVerifier_$7453(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_contract$_IVerifier_$7453(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint48_to_t_uint48_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$7453(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_contract$_IVerifier_$7453(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint48(x, y) -> sum {\n x := cleanup_t_uint48(x)\n y := cleanup_t_uint48(y)\n sum := add(x, y)\n\n if gt(sum, 0xffffffffffff) { panic_error_0x11() }\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_rational_48_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function convert_t_rational_48_by_1_to_t_uint8(value) -> converted {\n converted := cleanup_t_uint8(identity(cleanup_t_rational_48_by_1(value)))\n }\n\n function abi_encode_t_rational_48_by_1_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_rational_48_by_1_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_rational_48_by_1_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function checked_sub_t_uint48(x, y) -> diff {\n x := cleanup_t_uint48(x)\n y := cleanup_t_uint48(y)\n diff := sub(x, y)\n\n if gt(diff, 0xffffffffffff) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "6499": [ + { + "length": 32, + "start": 2340 + }, + { + "length": 32, + "start": 4442 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ca7565b6105ff565b6040516102279190611cef565b60405180910390f35b610238610679565b6040516102459190611d2b565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611d7c565b61069c565b60405161027f9190611db8565b60405180910390f35b6102a2600480360381019061029d9190611e31565b6106bb565b005b6102be60048036038101906102b99190611e31565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611d7c565b610827565b6040516102f19190611ed0565b60405180910390f35b610314600480360381019061030f9190611d7c565b610867565b6040516103249493929190611f13565b60405180910390f35b6103356108d7565b6040516103429190611cef565b60405180910390f35b61036560048036038101906103609190611f58565b6108ee565b005b610381600480360381019061037c9190611fb1565b610908565b005b61038b610922565b6040516103989190611fff565b60405180910390f35b6103bb60048036038101906103b69190611e31565b610946565b6040516103c89190611cef565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061201a565b60405180910390f35b6104016109e6565b60405161040e919061201a565b60405180910390f35b610431600480360381019061042c9190611e31565b6109f5565b60405161043e9190611cef565b60405180910390f35b61044f610a5f565b60405161045d929190612035565b60405180910390f35b61046e610abf565b60405161047b9190611db8565b60405180910390f35b61049e60048036038101906104999190611d7c565b610ac6565b6040516104ab919061205e565b60405180910390f35b6104ce60048036038101906104c991906120b7565b610ae6565b005b6104ea60048036038101906104e591906120f7565b610b09565b005b6104f4610b17565b6040516105019190611db8565b60405180910390f35b610512610b3b565b60405161051f9190611d2b565b60405180910390f35b610530610ba9565b005b61053a610c3f565b604051610548929190612137565b60405180910390f35b61056b60048036038101906105669190611d7c565b610c82565b604051610578919061201a565b60405180910390f35b61059b60048036038101906105969190611e31565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612160565b610d24565b005b6105cb610d3d565b6040516105d89190611db8565b60405180910390f35b6105e9610d61565b6040516105f69190611db8565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d2b565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061201a565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061201a565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b61101191906121e2565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d2b565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d91906121e2565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612035565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061201a565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611db8565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612231565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef600000000000000000000000000000000000000000000000000000000815260040161124392919061225e565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061201a565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d2b565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c492919061225e565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122cf565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b291906122f8565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061201a565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000818310611c405781611c42565b825b905092915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c8481611c4f565b8114611c8f57600080fd5b50565b600081359050611ca181611c7b565b92915050565b600060208284031215611cbd57611cbc611c4a565b5b6000611ccb84828501611c92565b91505092915050565b60008115159050919050565b611ce981611cd4565b82525050565b6000602082019050611d046000830184611ce0565b92915050565b600065ffffffffffff82169050919050565b611d2581611d0a565b82525050565b6000602082019050611d406000830184611d1c565b92915050565b6000819050919050565b611d5981611d46565b8114611d6457600080fd5b50565b600081359050611d7681611d50565b92915050565b600060208284031215611d9257611d91611c4a565b5b6000611da084828501611d67565b91505092915050565b611db281611d46565b82525050565b6000602082019050611dcd6000830184611da9565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dfe82611dd3565b9050919050565b611e0e81611df3565b8114611e1957600080fd5b50565b600081359050611e2b81611e05565b92915050565b60008060408385031215611e4857611e47611c4a565b5b6000611e5685828601611d67565b9250506020611e6785828601611e1c565b9150509250929050565b6000819050919050565b6000611e96611e91611e8c84611dd3565b611e71565b611dd3565b9050919050565b6000611ea882611e7b565b9050919050565b6000611eba82611e9d565b9050919050565b611eca81611eaf565b82525050565b6000602082019050611ee56000830184611ec1565b92915050565b611ef481611df3565b82525050565b6000819050919050565b611f0d81611efa565b82525050565b6000608082019050611f286000830187611eeb565b611f356020830186611ec1565b611f426040830185611f04565b611f4f6060830184611f04565b95945050505050565b600060208284031215611f6e57611f6d611c4a565b5b6000611f7c84828501611e1c565b91505092915050565b611f8e81611d0a565b8114611f9957600080fd5b50565b600081359050611fab81611f85565b92915050565b600060208284031215611fc757611fc6611c4a565b5b6000611fd584828501611f9c565b91505092915050565b6000611fe982611e9d565b9050919050565b611ff981611fde565b82525050565b60006020820190506120146000830184611ff0565b92915050565b600060208201905061202f6000830184611eeb565b92915050565b600060408201905061204a6000830185611d1c565b6120576020830184611d1c565b9392505050565b60006020820190506120736000830184611f04565b92915050565b600061208482611df3565b9050919050565b61209481612079565b811461209f57600080fd5b50565b6000813590506120b18161208b565b92915050565b600080604083850312156120ce576120cd611c4a565b5b60006120dc85828601611d67565b92505060206120ed858286016120a2565b9150509250929050565b6000806040838503121561210e5761210d611c4a565b5b600061211c85828601611e1c565b925050602061212d85828601611d67565b9150509250929050565b600060408201905061214c6000830185611eeb565b6121596020830184611d1c565b9392505050565b60008060006060848603121561217957612178611c4a565b5b600061218786828701611e1c565b935050602061219886828701611d67565b92505060406121a9868287016120a2565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121ed82611d0a565b91506121f883611d0a565b9250828201905065ffffffffffff811115612216576122156121b3565b5b92915050565b60008151905061222b81611e05565b92915050565b60006020828403121561224757612246611c4a565b5b60006122558482850161221c565b91505092915050565b60006040820190506122736000830185611eeb565b6122806020830184611da9565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122b96122b46122af84612287565b611e71565b612291565b9050919050565b6122c98161229e565b82525050565b60006040820190506122e460008301856122c0565b6122f16020830184611f04565b9392505050565b600061230382611d0a565b915061230e83611d0a565b9250828203905065ffffffffffff81111561232c5761232b6121b3565b5b9291505056fea264697066735822122045b9e71aa8dc2a139bb98a453175d418f82bc5b62b4236ce56fe6b30a9dfffc964736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1FB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x11A JUMPI DUP1 PUSH4 0xCC8463C8 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x581 JUMPI DUP1 PUSH4 0xD602B9FD EQ PUSH2 0x59D JUMPI DUP1 PUSH4 0xDD738E6C EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xE63AB1E9 EQ PUSH2 0x5C3 JUMPI DUP1 PUSH4 0xF68E9553 EQ PUSH2 0x5E1 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xCC8463C8 EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0xCEFC1429 EQ PUSH2 0x528 JUMPI DUP1 PUSH4 0xCF6EEFB7 EQ PUSH2 0x532 JUMPI DUP1 PUSH4 0xD26CDD20 EQ PUSH2 0x551 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xA2A6C0EB GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xA2A6C0EB EQ PUSH2 0x484 JUMPI DUP1 PUSH4 0xA692B9EF EQ PUSH2 0x4B4 JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0xBE8CD266 EQ PUSH2 0x4EC JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3F9 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x417 JUMPI DUP1 PUSH4 0xA1EDA53C EQ PUSH2 0x447 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x466 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x5B377FA2 GT PUSH2 0x192 JUMPI DUP1 PUSH4 0x7B103999 GT PUSH2 0x161 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x383 JUMPI DUP1 PUSH4 0x8023597E EQ PUSH2 0x3A1 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x3D1 JUMPI DUP1 PUSH4 0x84EF8FFC EQ PUSH2 0x3DB JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x5B377FA2 EQ PUSH2 0x2FA JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x634E93DA EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0x649A5EC7 EQ PUSH2 0x367 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x1CE JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x5A75199A EQ PUSH2 0x2CA JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x22D63FB EQ PUSH2 0x230 JUMPI DUP1 PUSH4 0xAA6220B EQ PUSH2 0x24E JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x258 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1CA7 JUMP JUMPDEST PUSH2 0x5FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x227 SWAP2 SWAP1 PUSH2 0x1CEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x238 PUSH2 0x679 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x245 SWAP2 SWAP1 PUSH2 0x1D2B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x256 PUSH2 0x684 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x272 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0x69C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29D SWAP2 SWAP1 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0x6DD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C8 PUSH2 0x7F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2E4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2DF SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0x1ED0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x314 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30F SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0x867 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F13 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x335 PUSH2 0x8D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x342 SWAP2 SWAP1 PUSH2 0x1CEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x365 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x1F58 JUMP JUMPDEST PUSH2 0x8EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x381 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x1FB1 JUMP JUMPDEST PUSH2 0x908 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x38B PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x398 SWAP2 SWAP1 PUSH2 0x1FFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3BB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B6 SWAP2 SWAP1 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0x946 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x1CEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D9 PUSH2 0x987 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E3 PUSH2 0x9BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F0 SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x401 PUSH2 0x9E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40E SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x431 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43E SWAP2 SWAP1 PUSH2 0x1CEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x44F PUSH2 0xA5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45D SWAP3 SWAP2 SWAP1 PUSH2 0x2035 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x46E PUSH2 0xABF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x47B SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x49E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x499 SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0xAC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x205E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C9 SWAP2 SWAP1 PUSH2 0x20B7 JUMP JUMPDEST PUSH2 0xAE6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4EA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x20F7 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F4 PUSH2 0xB17 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x501 SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x512 PUSH2 0xB3B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x1D2B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x530 PUSH2 0xBA9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x53A PUSH2 0xC3F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x548 SWAP3 SWAP2 SWAP1 PUSH2 0x2137 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x56B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x566 SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0xC82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x578 SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x59B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x596 SWAP2 SWAP1 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0xCC2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5A5 PUSH2 0xD0C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5BC SWAP2 SWAP1 PUSH2 0x2160 JUMP JUMPDEST PUSH2 0xD24 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5CB PUSH2 0xD3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D8 SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5E9 PUSH2 0xD61 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5F6 SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x3149878600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x672 JUMPI POP PUSH2 0x671 DUP3 PUSH2 0xD85 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x69780 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x691 DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x699 PUSH2 0xE13 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6C4 DUP3 PUSH2 0x69C JUMP JUMPDEST PUSH2 0x6CD DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x6D7 DUP4 DUP4 PUSH2 0xE20 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 EQ DUP1 ISZERO PUSH2 0x721 JUMPI POP PUSH2 0x6F2 PUSH2 0x9BC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x7E4 JUMPI PUSH1 0x0 DUP1 PUSH2 0x731 PUSH2 0xC3F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x777 JUMPI POP PUSH2 0x775 DUP2 PUSH2 0xEED JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x788 JUMPI POP PUSH2 0x786 DUP2 PUSH2 0xF02 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x7CA JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C1 SWAP2 SWAP1 PUSH2 0x1D2B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMPDEST PUSH2 0x7EE DUP3 DUP3 PUSH2 0xF16 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x65D7A28E3265B37A6474929F336521B332C1681B933F6CB9F3376673440D862A PUSH2 0x81C DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x824 PUSH2 0xF91 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x8FB DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x904 DUP3 PUSH2 0xFF4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x915 DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x91E DUP3 PUSH2 0x106F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x968 DUP5 PUSH2 0xC82 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x65D7A28E3265B37A6474929F336521B332C1681B933F6CB9F3376673440D862A PUSH2 0x9B1 DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x9B9 PUSH2 0x10D6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9F0 PUSH2 0x9BC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xA82 DUP2 PUSH2 0xEED JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA94 JUMPI POP PUSH2 0xA92 DUP2 PUSH2 0xF02 JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0xAA0 JUMPI PUSH1 0x0 DUP1 PUSH2 0xAB7 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAEE PUSH2 0x1139 JUMP JUMPDEST DUP3 PUSH2 0xAF9 DUP3 DUP3 PUSH2 0x1141 JUMP JUMPDEST PUSH2 0xB03 DUP5 DUP5 PUSH2 0x1250 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xB13 DUP3 DUP3 PUSH2 0x1375 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x3AE1C506296743D7E3D03C7C7FBC7159C94706BB478D44FE35E75190455A7509 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xB5E DUP2 PUSH2 0xEED JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB6F JUMPI POP PUSH2 0xB6E DUP2 PUSH2 0xF02 JUMP JUMPDEST JUMPDEST PUSH2 0xB8D JUMPI PUSH1 0x1 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0xBA3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB3 PUSH2 0xC3F JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xBD5 PUSH2 0x1139 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC34 JUMPI PUSH2 0xBF8 PUSH2 0x1139 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC2B SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC3C PUSH2 0x1418 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0xCFE JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD08 DUP3 DUP3 PUSH2 0x14E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0xD19 DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0xD21 PUSH2 0x1509 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xD2E DUP4 DUP4 PUSH2 0x1375 JUMP JUMPDEST PUSH2 0xD38 DUP3 DUP3 PUSH2 0x1250 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x65D7A28E3265B37A6474929F336521B332C1681B933F6CB9F3376673440D862A DUP2 JUMP JUMPDEST PUSH32 0xEDCC084D3DCD65A1F7F23C65C46722FACA6953D28E43150A467CF43E5C309238 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xDF8 JUMPI POP PUSH2 0xDF7 DUP3 PUSH2 0x1516 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE10 DUP2 PUSH2 0xE0B PUSH2 0x1139 JUMP JUMPDEST PUSH2 0x1580 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE1E PUSH1 0x0 DUP1 PUSH2 0x15D1 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0xEDB JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE4C PUSH2 0x9BC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xE99 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0xEE5 DUP4 DUP4 PUSH2 0x16C1 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH6 0xFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP DUP3 PUSH6 0xFFFFFFFFFFFF AND LT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF1E PUSH2 0x1139 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF82 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF8C DUP3 DUP3 PUSH2 0x17B2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xF99 PUSH2 0x1835 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH2 0xFDD PUSH2 0x1139 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFEA SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFE PUSH2 0xB3B JUMP JUMPDEST PUSH2 0x1007 TIMESTAMP PUSH2 0x1875 JUMP JUMPDEST PUSH2 0x1011 SWAP2 SWAP1 PUSH2 0x21E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x101D DUP3 DUP3 PUSH2 0x18CF JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3377DC44241E779DD06AFAB5B788A35CA5F3B778836E2990BDB26A2A4B2E5ED6 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1063 SWAP2 SWAP1 PUSH2 0x1D2B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x107A DUP3 PUSH2 0x1982 JUMP JUMPDEST PUSH2 0x1083 TIMESTAMP PUSH2 0x1875 JUMP JUMPDEST PUSH2 0x108D SWAP2 SWAP1 PUSH2 0x21E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x1099 DUP3 DUP3 PUSH2 0x15D1 JUMP JUMPDEST PUSH32 0xF1038C18CF84A56E432FDBFAF746924B7EA511DFE03A6506A0CEBA4888788D9B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x10CA SWAP3 SWAP2 SWAP1 PUSH2 0x2035 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x10DE PUSH2 0x19E1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x1122 PUSH2 0x1139 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x112F SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD26CDD20 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11B1 SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11F2 SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x124C JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x2EBB0EF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1243 SWAP3 SWAP2 SWAP1 PUSH2 0x225E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1258 PUSH2 0x19E1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xC485A79936C258FD12FEF44DD3DE8D3069F7A6386C10E58329849408C91BBCD2 PUSH2 0x135B PUSH2 0x1139 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1368 SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH32 0xEDCC084D3DCD65A1F7F23C65C46722FACA6953D28E43150A467CF43E5C309238 PUSH2 0x139F DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x13A7 PUSH2 0x19E1 JUMP JUMPDEST PUSH2 0x13B1 DUP3 DUP5 PUSH2 0x1A22 JUMP JUMPDEST DUP2 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13D1 PUSH2 0x1139 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFB904AC70CCBE99B850406BF60ADA29496703558524D72BCB9E54B76D1040A63 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1423 PUSH2 0xC3F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1430 DUP2 PUSH2 0xEED JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1442 JUMPI POP PUSH2 0x1440 DUP2 PUSH2 0xF02 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1484 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x147B SWAP2 SWAP1 PUSH2 0x1D2B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1498 PUSH1 0x0 DUP1 SHL PUSH2 0x1493 PUSH2 0x9BC JUMP JUMPDEST PUSH2 0x17B2 JUMP JUMPDEST POP PUSH2 0x14A6 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0xE20 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x14F0 DUP3 PUSH2 0x69C JUMP JUMPDEST PUSH2 0x14F9 DUP2 PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x1503 DUP4 DUP4 PUSH2 0x17B2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1514 PUSH1 0x0 DUP1 PUSH2 0x18CF JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x158A DUP3 DUP3 PUSH2 0x9F5 JUMP JUMPDEST PUSH2 0x15CD JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15C4 SWAP3 SWAP2 SWAP1 PUSH2 0x225E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x15F3 DUP2 PUSH2 0xEED JUMP JUMPDEST ISZERO PUSH2 0x1672 JUMPI PUSH2 0x1601 DUP2 PUSH2 0xF02 JUMP JUMPDEST ISZERO PUSH2 0x1644 JUMPI PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x1671 JUMP JUMPDEST PUSH32 0x2B1FA2EDAFE6F7B9E97C1A9E0C3660E645BEB2DCAA2D45BDBF9BEAF5472E1EC5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16CD DUP4 DUP4 PUSH2 0x9F5 JUMP JUMPDEST PUSH2 0x17A7 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1744 PUSH2 0x1139 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x17AC JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 EQ DUP1 ISZERO PUSH2 0x17F8 JUMPI POP PUSH2 0x17C9 PUSH2 0x9BC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x1823 JUMPI PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE JUMPDEST PUSH2 0x182D DUP4 DUP4 PUSH2 0x1B3F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x183D PUSH2 0x8D7 JUMP JUMPDEST PUSH2 0x1873 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8DFC202B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP1 AND DUP3 GT ISZERO PUSH2 0x18C7 JUMPI PUSH1 0x30 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DFCC65000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18BE SWAP3 SWAP2 SWAP1 PUSH2 0x22CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18D9 PUSH2 0xC3F JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x194B DUP2 PUSH2 0xEED JUMP JUMPDEST ISZERO PUSH2 0x197D JUMPI PUSH32 0x8886EBFC4259ABDBC16601DD8FB5678E54878F47B3C34836CFC51154A9605109 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x198D PUSH2 0xB3B JUMP JUMPDEST SWAP1 POP DUP1 PUSH6 0xFFFFFFFFFFFF AND DUP4 PUSH6 0xFFFFFFFFFFFF AND GT PUSH2 0x19B7 JUMPI DUP3 DUP2 PUSH2 0x19B2 SWAP2 SWAP1 PUSH2 0x22F8 JUMP JUMPDEST PUSH2 0x19D9 JUMP JUMPDEST PUSH2 0x19D8 DUP4 PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x19CB PUSH2 0x679 JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19E9 PUSH2 0x8D7 JUMP JUMPDEST ISZERO PUSH2 0x1A20 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD93C066500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xC4556710B10078AAE76DBDF4AD5EA256F74909069BD8AF417C5C2AEAC18EB288 PUSH2 0x1B25 PUSH2 0x1139 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B32 SWAP2 SWAP1 PUSH2 0x201A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B4B DUP4 DUP4 PUSH2 0x9F5 JUMP JUMPDEST ISZERO PUSH2 0x1C26 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1BC3 PUSH2 0x1139 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1C2B JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1C40 JUMPI DUP2 PUSH2 0x1C42 JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C84 DUP2 PUSH2 0x1C4F JUMP JUMPDEST DUP2 EQ PUSH2 0x1C8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1CA1 DUP2 PUSH2 0x1C7B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CBD JUMPI PUSH2 0x1CBC PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CCB DUP5 DUP3 DUP6 ADD PUSH2 0x1C92 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CE9 DUP2 PUSH2 0x1CD4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D04 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1CE0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D25 DUP2 PUSH2 0x1D0A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D40 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D59 DUP2 PUSH2 0x1D46 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D76 DUP2 PUSH2 0x1D50 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D92 JUMPI PUSH2 0x1D91 PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DA0 DUP5 DUP3 DUP6 ADD PUSH2 0x1D67 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1DB2 DUP2 PUSH2 0x1D46 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DCD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DA9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DFE DUP3 PUSH2 0x1DD3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E0E DUP2 PUSH2 0x1DF3 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E2B DUP2 PUSH2 0x1E05 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E48 JUMPI PUSH2 0x1E47 PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E56 DUP6 DUP3 DUP7 ADD PUSH2 0x1D67 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E67 DUP6 DUP3 DUP7 ADD PUSH2 0x1E1C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E96 PUSH2 0x1E91 PUSH2 0x1E8C DUP5 PUSH2 0x1DD3 JUMP JUMPDEST PUSH2 0x1E71 JUMP JUMPDEST PUSH2 0x1DD3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA8 DUP3 PUSH2 0x1E7B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EBA DUP3 PUSH2 0x1E9D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1ECA DUP2 PUSH2 0x1EAF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1EE5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EC1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1EF4 DUP2 PUSH2 0x1DF3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F0D DUP2 PUSH2 0x1EFA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1F28 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x1EEB JUMP JUMPDEST PUSH2 0x1F35 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1EC1 JUMP JUMPDEST PUSH2 0x1F42 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1F04 JUMP JUMPDEST PUSH2 0x1F4F PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1F04 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F6E JUMPI PUSH2 0x1F6D PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F7C DUP5 DUP3 DUP6 ADD PUSH2 0x1E1C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1F8E DUP2 PUSH2 0x1D0A JUMP JUMPDEST DUP2 EQ PUSH2 0x1F99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FAB DUP2 PUSH2 0x1F85 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FC7 JUMPI PUSH2 0x1FC6 PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FD5 DUP5 DUP3 DUP6 ADD PUSH2 0x1F9C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FE9 DUP3 PUSH2 0x1E9D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FF9 DUP2 PUSH2 0x1FDE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2014 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1FF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x202F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EEB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x204A PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1D1C JUMP JUMPDEST PUSH2 0x2057 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D1C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2073 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F04 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2084 DUP3 PUSH2 0x1DF3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2094 DUP2 PUSH2 0x2079 JUMP JUMPDEST DUP2 EQ PUSH2 0x209F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x20B1 DUP2 PUSH2 0x208B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20CE JUMPI PUSH2 0x20CD PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x20DC DUP6 DUP3 DUP7 ADD PUSH2 0x1D67 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x20ED DUP6 DUP3 DUP7 ADD PUSH2 0x20A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x210E JUMPI PUSH2 0x210D PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x211C DUP6 DUP3 DUP7 ADD PUSH2 0x1E1C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x212D DUP6 DUP3 DUP7 ADD PUSH2 0x1D67 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x214C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1EEB JUMP JUMPDEST PUSH2 0x2159 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D1C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2179 JUMPI PUSH2 0x2178 PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2187 DUP7 DUP3 DUP8 ADD PUSH2 0x1E1C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2198 DUP7 DUP3 DUP8 ADD PUSH2 0x1D67 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x21A9 DUP7 DUP3 DUP8 ADD PUSH2 0x20A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21ED DUP3 PUSH2 0x1D0A JUMP JUMPDEST SWAP2 POP PUSH2 0x21F8 DUP4 PUSH2 0x1D0A JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2216 JUMPI PUSH2 0x2215 PUSH2 0x21B3 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x222B DUP2 PUSH2 0x1E05 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2247 JUMPI PUSH2 0x2246 PUSH2 0x1C4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2255 DUP5 DUP3 DUP6 ADD PUSH2 0x221C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2273 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1EEB JUMP JUMPDEST PUSH2 0x2280 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1DA9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22B9 PUSH2 0x22B4 PUSH2 0x22AF DUP5 PUSH2 0x2287 JUMP JUMPDEST PUSH2 0x1E71 JUMP JUMPDEST PUSH2 0x2291 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22C9 DUP2 PUSH2 0x229E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x22E4 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22C0 JUMP JUMPDEST PUSH2 0x22F1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F04 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2303 DUP3 PUSH2 0x1D0A JUMP JUMPDEST SWAP2 POP PUSH2 0x230E DUP4 PUSH2 0x1D0A JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x232C JUMPI PUSH2 0x232B PUSH2 0x21B3 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASLIMIT 0xB9 0xE7 BYTE 0xA8 0xDC 0x2A SGT SWAP12 0xB9 DUP11 GASLIMIT BALANCE PUSH22 0xD418F82BC5B62B4236CE56FE6B30A9DFFFC964736F6C PUSH4 0x4300081C STOP CALLER ", + "sourceMap": "598:5743:34:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:219:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7766:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10927:126;;;:::i;:::-;;3810:120:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4273:137:34;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4515:566:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2945:77:34;;;:::i;:::-;;3596:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1662:68;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;1850:84:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8068:150:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10296:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;349:38:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3090:186:34;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2784:73;;;:::i;:::-;;6707:106:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2942:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2854:136:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7432:261:9;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2187:49:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3821:161:34;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3342:185;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2273:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1266:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7130:229:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9146:344;;;:::i;:::-;;6886:171;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4476:148:34;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3563:267:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8706:128;;;:::i;:::-;;2473:225:34;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1522:62;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1401:68;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2667:219:9;2752:4;2790:49;2775:64;;;:11;:64;;;;:104;;;;2843:36;2867:11;2843:23;:36::i;:::-;2775:104;2768:111;;2667:219;;;:::o;7766:108::-;7836:6;7861;7854:13;;7766:108;:::o;10927:126::-;2232:4:6;10988:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;11018:28:9::1;:26;:28::i;:::-;10927:126:::0;:::o;3810:120:6:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;4273:137:34:-;4348:18;4361:4;4348:12;:18::i;:::-;2464:16:6;2475:4;2464:10;:16::i;:::-;4378:25:34::1;4389:4;4395:7;4378:10;:25::i;:::-;;4273:137:::0;;;:::o;4515:566:9:-;2232:4:6;4645:18:9;;4637:4;:26;:55;;;;;4678:14;:12;:14::i;:::-;4667:25;;:7;:25;;;4637:55;4633:399;;;4709:23;4734:15;4753:21;:19;:21::i;:::-;4708:66;;;;4819:1;4792:29;;:15;:29;;;;:58;;;;4826:24;4841:8;4826:14;:24::i;:::-;4825:25;4792:58;:91;;;;4855:28;4874:8;4855:18;:28::i;:::-;4854:29;4792:91;4788:185;;;4949:8;4910:48;;;;;;;;;;;:::i;:::-;;;;;;;;4788:185;4993:28;;4986:35;;;;;;;;;;;4694:338;;4633:399;5041:33;5060:4;5066:7;5041:18;:33::i;:::-;4515:566;;:::o;2945:77:34:-;1560:24;2464:16:6;2475:4;2464:10;:16::i;:::-;3005:10:34::1;:8;:10::i;:::-;2945:77:::0;:::o;3596:149::-;3671:9;3699:18;:30;3718:10;3699:30;;;;;;;;;;;:39;;;;;;;;;;;;3692:46;;3596:149;;;:::o;1662:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1850:84:21:-;1897:4;1920:7;;;;;;;;;;;1913:14;;1850:84;:::o;8068:150:9:-;2232:4:6;8145:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;8175:36:9::1;8202:8;8175:26;:36::i;:::-;8068:150:::0;;:::o;10296:145::-;2232:4:6;10370:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;10400:34:9::1;10425:8;10400:24;:34::i;:::-;10296:145:::0;;:::o;349:38:27:-;;;:::o;3090:186:34:-;3212:4;3262:7;3235:34;;:23;3247:10;3235:11;:23::i;:::-;:34;;;3228:41;;3090:186;;;;:::o;2784:73::-;1560:24;2464:16:6;2475:4;2464:10;:16::i;:::-;2842:8:34::1;:6;:8::i;:::-;2784:73:::0;:::o;6707:106:9:-;6760:7;6786:20;;;;;;;;;;;6779:27;;6707:106;:::o;2942:93::-;2988:7;3014:14;:12;:14::i;:::-;3007:21;;2942:93;:::o;2854:136:6:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;7432:261:9:-;7497:15;7514;7552:21;;;;;;;;;;;7541:32;;7591:24;7606:8;7591:14;:24::i;:::-;:57;;;;;7620:28;7639:8;7620:18;:28::i;:::-;7619:29;7591:57;7590:96;;7681:1;7684;7590:96;;;7653:13;;;;;;;;;;;7668:8;7590:96;7583:103;;;;7432:261;;:::o;2187:49:6:-;2232:4;2187:49;;;:::o;3821:161:34:-;3903:7;3929:18;:30;3948:10;3929:30;;;;;;;;;;;:46;;;3922:53;;3821:161;;;:::o;3342:185::-;3450:12;:10;:12::i;:::-;3464:10;872:38:27;890:7;899:10;872:17;:38::i;:::-;3486:34:34::1;3499:10;3511:8;3486:12;:34::i;:::-;3342:185:::0;;;;:::o;2273:119::-;2351:34;2367:5;2374:10;2351:15;:34::i;:::-;2273:119;;:::o;1266:84::-;1315:35;1266:84;:::o;7130:229:9:-;7188:6;7206:15;7224:21;;;;;;;;;;;7206:39;;7263:24;7278:8;7263:14;:24::i;:::-;:56;;;;;7291:28;7310:8;7291:18;:28::i;:::-;7263:56;7262:90;;7339:13;;;;;;;;;;;7262:90;;;7323:13;;;;;;;;;;;7262:90;7255:97;;;7130:229;:::o;9146:344::-;9210:23;9239:21;:19;:21::i;:::-;9209:51;;;9290:15;9274:31;;:12;:10;:12::i;:::-;:31;;;9270:175;;9421:12;:10;:12::i;:::-;9388:46;;;;;;;;;;;:::i;:::-;;;;;;;;9270:175;9454:29;:27;:29::i;:::-;9199:291;9146:344::o;6886:171::-;6946:16;6964:15;6999:20;;;;;;;;;;;7021:28;;;;;;;;;;;6991:59;;;;6886:171;;:::o;4476:148:34:-;4555:7;4581:18;:30;4600:10;4581:30;;;;;;;;;;;:36;;;;;;;;;;;;4574:43;;4476:148;;;:::o;3563:267:9:-;2232:4:6;3691:18:9;;3683:4;:26;3679:104;;3732:40;;;;;;;;;;;;;;3679:104;3792:31;3809:4;3815:7;3792:16;:31::i;:::-;3563:267;;:::o;8706:128::-;2232:4:6;8768:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;8798:29:9::1;:27;:29::i;:::-;8706:128:::0;:::o;2473:225:34:-;2613:34;2629:5;2636:10;2613:15;:34::i;:::-;2657;2670:10;2682:8;2657:12;:34::i;:::-;2473:225;;;:::o;1522:62::-;1560:24;1522:62;:::o;1401:68::-;1442:27;1401:68;:::o;2565:202:6:-;2650:4;2688:32;2673:47;;;:11;:47;;;;:87;;;;2724:36;2748:11;2724:23;:36::i;:::-;2673:87;2666:94;;2565:202;;;:::o;3199:103::-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;11180:94:9:-;11245:22;11262:1;11265;11245:16;:22::i;:::-;11180:94::o;5509:370::-;5595:4;2232::6;5623:18:9;;5615:4;:26;5611:214;;5687:1;5661:28;;:14;:12;:14::i;:::-;:28;;;5657:114;;5716:40;;;;;;;;;;;;;;5657:114;5807:7;5784:20;;:30;;;;;;;;;;;;;;;;;;5611:214;5841:31;5858:4;5864:7;5841:16;:31::i;:::-;5834:38;;5509:370;;;;:::o;14471:106::-;14534:4;14569:1;14557:8;:13;;;;14550:20;;14471:106;;;:::o;14684:123::-;14751:4;14785:15;14774:8;:26;;;14767:33;;14684:123;;;:::o;5328:245:6:-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;2710:117:21:-;1721:16;:14;:16::i;:::-;2778:5:::1;2768:7;;:15;;;;;;;;;;;;;;;;;;2798:22;2807:12;:10;:12::i;:::-;2798:22;;;;;;:::i;:::-;;;;;;;;2710:117::o:0;8345:288:9:-;8426:18;8484:19;:17;:19::i;:::-;8447:34;8465:15;8447:17;:34::i;:::-;:56;;;;:::i;:::-;8426:77;;8513:46;8537:8;8547:11;8513:23;:46::i;:::-;8604:8;8574:52;;;8614:11;8574:52;;;;;;:::i;:::-;;;;;;;;8416:217;8345:288;:::o;10566:::-;10644:18;10702:26;10719:8;10702:16;:26::i;:::-;10665:34;10683:15;10665:17;:34::i;:::-;:63;;;;:::i;:::-;10644:84;;10738:39;10755:8;10765:11;10738:16;:39::i;:::-;10792:55;10825:8;10835:11;10792:55;;;;;;;:::i;:::-;;;;;;;;10634:220;10566:288;:::o;2463:115:21:-;1474:19;:17;:19::i;:::-;2532:4:::1;2522:7;;:14;;;;;;;;;;;;;;;;;;2551:20;2558:12;:10;:12::i;:::-;2551:20;;;;;;:::i;:::-;;;;;;;;2463:115::o:0;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;1487:218:27:-;1614:7;1578:43;;:8;:20;;;1599:10;1578:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;;1574:125;;1668:7;1677:10;1644:44;;;;;;;;;;;;:::i;:::-;;;;;;;;1574:125;1487:218;;:::o;5509:373:34:-;1474:19:21;:17;:19::i;:::-;5603:21:34::1;5627:18;:30;5646:10;5627:30;;;;;;;;;;;:39;;;;;;;;;;;;5603:63;;5718:8;5676:18;:30;5695:10;5676:30;;;;;;;;;;;:39;;;:50;;;;;;;;;;;;;;;;;;5785:15;5736:18;:30;5755:10;5736:30;;;;;;;;;;;:46;;:64;;;;5866:8;5815:60;;5853:11;5815:60;;5841:10;5815:60;5827:12;:10;:12::i;:::-;5815:60;;;;;;:::i;:::-;;;;;;;;5593:289;5509:373:::0;;:::o;5001:244::-;1442:27;2464:16:6;2475:4;2464:10;:16::i;:::-;1474:19:21::1;:17;:19::i;:::-;5140:34:34::2;5156:10;5168:5;5140:15;:34::i;:::-;5227:10;5220:5;5189:49;;5206:12;:10;:12::i;:::-;5189:49;;;;;;;;;;;;5001:244:::0;;;:::o;9618:474:9:-;9685:16;9703:15;9722:21;:19;:21::i;:::-;9684:59;;;;9758:24;9773:8;9758:14;:24::i;:::-;9757:25;:58;;;;9787:28;9806:8;9787:18;:28::i;:::-;9786:29;9757:58;9753:144;;;9877:8;9838:48;;;;;;;;;;;:::i;:::-;;;;;;;;9753:144;9906:47;2232:4:6;9918:18:9;;9938:14;:12;:14::i;:::-;9906:11;:47::i;:::-;;9963:40;2232:4:6;9974:18:9;;9994:8;9963:10;:40::i;:::-;;10020:20;;10013:27;;;;;;;;;;;10057:28;;10050:35;;;;;;;;;;;9674:418;;9618:474::o;4642:138:6:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;8962:111:9:-;9028:38;9060:1;9064;9028:23;:38::i;:::-;8962:111::o;762:146:23:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;3432:197:6:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;13741:585:9:-;13822:18;13843:21;;;;;;;;;;;13822:42;;13879:27;13894:11;13879:14;:27::i;:::-;13875:365;;;13926:31;13945:11;13926:18;:31::i;:::-;13922:308;;;14040:13;;;;;;;;;;;14024;;:29;;;;;;;;;;;;;;;;;;13922:308;;;14182:33;;;;;;;;;;13922:308;13875:365;14266:8;14250:13;;:24;;;;;;;;;;;;;;;;;;14308:11;14284:21;;:35;;;;;;;;;;;;;;;;;;13812:514;13741:585;;:::o;6179:316:6:-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;5946:271:9:-;6033:4;2232::6;6061:18:9;;6053:4;:26;:55;;;;;6094:14;:12;:14::i;:::-;6083:25;;:7;:25;;;6053:55;6049:113;;;6131:20;;6124:27;;;;;;;;;;;6049:113;6178:32;6196:4;6202:7;6178:17;:32::i;:::-;6171:39;;5946:271;;;;:::o;2202:126:21:-;2265:8;:6;:8::i;:::-;2260:62;;2296:15;;;;;;;;;;;;;;2260:62;2202:126::o;14291:213:26:-;14347:6;14377:16;14369:24;;:5;:24;14365:103;;;14447:2;14451:5;14416:41;;;;;;;;;;;;:::i;:::-;;;;;;;;14365:103;14491:5;14477:20;;14291:213;;;:::o;13062:525:9:-;13154:18;13176:21;:19;:21::i;:::-;13151:46;;;13231:8;13208:20;;:31;;;;;;;;;;;;;;;;;;13280:11;13249:28;;:42;;;;;;;;;;;;;;;;;;13403:27;13418:11;13403:14;:27::i;:::-;13399:182;;;13540:30;;;;;;;;;;13399:182;13141:446;13062:525;;:::o;11621:1249::-;11695:6;11713:19;11735;:17;:19::i;:::-;11713:41;;12684:12;12673:23;;:8;:23;;;:190;;12855:8;12840:12;:23;;;;:::i;:::-;12673:190;;;12722:51;12731:8;12722:51;;12741:31;:29;:31::i;:::-;12722:51;;:8;:51::i;:::-;12673:190;12654:209;;;11621:1249;;;:::o;2002:128:21:-;2067:8;:6;:8::i;:::-;2063:61;;;2098:15;;;;;;;;;;;;;;2063:61;2002:128::o;6008:331:34:-;6086:16;6105:18;:30;6124:10;6105:30;;;;;;;;;;;:36;;;;;;;;;;;;6086:55;;6190:5;6151:18;:30;6170:10;6151:30;;;;;;;;;;;:36;;;:44;;;;;;;;;;;;;;;;;;6251:15;6205:18;:30;6224:10;6205:30;;;;;;;;;;;:43;;:61;;;;6326:5;6281:51;;6316:8;6281:51;;6304:10;6281:51;6290:12;:10;:12::i;:::-;6281:51;;;;;;:::i;:::-;;;;;;;;6076:263;6008:331;;:::o;6730:317:6:-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;2557:104:25:-;2615:7;2645:1;2641;:5;:13;;2653:1;2641:13;;;2649:1;2641:13;2634:20;;2557:104;;;;:::o;88:117:37:-;197:1;194;187:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:97::-;1554:7;1594:14;1587:5;1583:26;1572:37;;1518:97;;;:::o;1621:115::-;1706:23;1723:5;1706:23;:::i;:::-;1701:3;1694:36;1621:115;;:::o;1742:218::-;1833:4;1871:2;1860:9;1856:18;1848:26;;1884:69;1950:1;1939:9;1935:17;1926:6;1884:69;:::i;:::-;1742:218;;;;:::o;1966:77::-;2003:7;2032:5;2021:16;;1966:77;;;:::o;2049:122::-;2122:24;2140:5;2122:24;:::i;:::-;2115:5;2112:35;2102:63;;2161:1;2158;2151:12;2102:63;2049:122;:::o;2177:139::-;2223:5;2261:6;2248:20;2239:29;;2277:33;2304:5;2277:33;:::i;:::-;2177:139;;;;:::o;2322:329::-;2381:6;2430:2;2418:9;2409:7;2405:23;2401:32;2398:119;;;2436:79;;:::i;:::-;2398:119;2556:1;2581:53;2626:7;2617:6;2606:9;2602:22;2581:53;:::i;:::-;2571:63;;2527:117;2322:329;;;;:::o;2657:118::-;2744:24;2762:5;2744:24;:::i;:::-;2739:3;2732:37;2657:118;;:::o;2781:222::-;2874:4;2912:2;2901:9;2897:18;2889:26;;2925:71;2993:1;2982:9;2978:17;2969:6;2925:71;:::i;:::-;2781:222;;;;:::o;3009:126::-;3046:7;3086:42;3079:5;3075:54;3064:65;;3009:126;;;:::o;3141:96::-;3178:7;3207:24;3225:5;3207:24;:::i;:::-;3196:35;;3141:96;;;:::o;3243:122::-;3316:24;3334:5;3316:24;:::i;:::-;3309:5;3306:35;3296:63;;3355:1;3352;3345:12;3296:63;3243:122;:::o;3371:139::-;3417:5;3455:6;3442:20;3433:29;;3471:33;3498:5;3471:33;:::i;:::-;3371:139;;;;:::o;3516:474::-;3584:6;3592;3641:2;3629:9;3620:7;3616:23;3612:32;3609:119;;;3647:79;;:::i;:::-;3609:119;3767:1;3792:53;3837:7;3828:6;3817:9;3813:22;3792:53;:::i;:::-;3782:63;;3738:117;3894:2;3920:53;3965:7;3956:6;3945:9;3941:22;3920:53;:::i;:::-;3910:63;;3865:118;3516:474;;;;;:::o;3996:60::-;4024:3;4045:5;4038:12;;3996:60;;;:::o;4062:142::-;4112:9;4145:53;4163:34;4172:24;4190:5;4172:24;:::i;:::-;4163:34;:::i;:::-;4145:53;:::i;:::-;4132:66;;4062:142;;;:::o;4210:126::-;4260:9;4293:37;4324:5;4293:37;:::i;:::-;4280:50;;4210:126;;;:::o;4342:144::-;4410:9;4443:37;4474:5;4443:37;:::i;:::-;4430:50;;4342:144;;;:::o;4492:167::-;4597:55;4646:5;4597:55;:::i;:::-;4592:3;4585:68;4492:167;;:::o;4665:258::-;4776:4;4814:2;4803:9;4799:18;4791:26;;4827:89;4913:1;4902:9;4898:17;4889:6;4827:89;:::i;:::-;4665:258;;;;:::o;4929:118::-;5016:24;5034:5;5016:24;:::i;:::-;5011:3;5004:37;4929:118;;:::o;5053:77::-;5090:7;5119:5;5108:16;;5053:77;;;:::o;5136:118::-;5223:24;5241:5;5223:24;:::i;:::-;5218:3;5211:37;5136:118;;:::o;5260:589::-;5455:4;5493:3;5482:9;5478:19;5470:27;;5507:71;5575:1;5564:9;5560:17;5551:6;5507:71;:::i;:::-;5588:90;5674:2;5663:9;5659:18;5650:6;5588:90;:::i;:::-;5688:72;5756:2;5745:9;5741:18;5732:6;5688:72;:::i;:::-;5770;5838:2;5827:9;5823:18;5814:6;5770:72;:::i;:::-;5260:589;;;;;;;:::o;5855:329::-;5914:6;5963:2;5951:9;5942:7;5938:23;5934:32;5931:119;;;5969:79;;:::i;:::-;5931:119;6089:1;6114:53;6159:7;6150:6;6139:9;6135:22;6114:53;:::i;:::-;6104:63;;6060:117;5855:329;;;;:::o;6190:120::-;6262:23;6279:5;6262:23;:::i;:::-;6255:5;6252:34;6242:62;;6300:1;6297;6290:12;6242:62;6190:120;:::o;6316:137::-;6361:5;6399:6;6386:20;6377:29;;6415:32;6441:5;6415:32;:::i;:::-;6316:137;;;;:::o;6459:327::-;6517:6;6566:2;6554:9;6545:7;6541:23;6537:32;6534:119;;;6572:79;;:::i;:::-;6534:119;6692:1;6717:52;6761:7;6752:6;6741:9;6737:22;6717:52;:::i;:::-;6707:62;;6663:116;6459:327;;;;:::o;6792:147::-;6863:9;6896:37;6927:5;6896:37;:::i;:::-;6883:50;;6792:147;;;:::o;6945:173::-;7053:58;7105:5;7053:58;:::i;:::-;7048:3;7041:71;6945:173;;:::o;7124:264::-;7238:4;7276:2;7265:9;7261:18;7253:26;;7289:92;7378:1;7367:9;7363:17;7354:6;7289:92;:::i;:::-;7124:264;;;;:::o;7394:222::-;7487:4;7525:2;7514:9;7510:18;7502:26;;7538:71;7606:1;7595:9;7591:17;7582:6;7538:71;:::i;:::-;7394:222;;;;:::o;7622:324::-;7739:4;7777:2;7766:9;7762:18;7754:26;;7790:69;7856:1;7845:9;7841:17;7832:6;7790:69;:::i;:::-;7869:70;7935:2;7924:9;7920:18;7911:6;7869:70;:::i;:::-;7622:324;;;;;:::o;7952:222::-;8045:4;8083:2;8072:9;8068:18;8060:26;;8096:71;8164:1;8153:9;8149:17;8140:6;8096:71;:::i;:::-;7952:222;;;;:::o;8180:114::-;8235:7;8264:24;8282:5;8264:24;:::i;:::-;8253:35;;8180:114;;;:::o;8300:158::-;8391:42;8427:5;8391:42;:::i;:::-;8384:5;8381:53;8371:81;;8448:1;8445;8438:12;8371:81;8300:158;:::o;8464:175::-;8528:5;8566:6;8553:20;8544:29;;8582:51;8627:5;8582:51;:::i;:::-;8464:175;;;;:::o;8645:510::-;8731:6;8739;8788:2;8776:9;8767:7;8763:23;8759:32;8756:119;;;8794:79;;:::i;:::-;8756:119;8914:1;8939:53;8984:7;8975:6;8964:9;8960:22;8939:53;:::i;:::-;8929:63;;8885:117;9041:2;9067:71;9130:7;9121:6;9110:9;9106:22;9067:71;:::i;:::-;9057:81;;9012:136;8645:510;;;;;:::o;9161:474::-;9229:6;9237;9286:2;9274:9;9265:7;9261:23;9257:32;9254:119;;;9292:79;;:::i;:::-;9254:119;9412:1;9437:53;9482:7;9473:6;9462:9;9458:22;9437:53;:::i;:::-;9427:63;;9383:117;9539:2;9565:53;9610:7;9601:6;9590:9;9586:22;9565:53;:::i;:::-;9555:63;;9510:118;9161:474;;;;;:::o;9641:328::-;9760:4;9798:2;9787:9;9783:18;9775:26;;9811:71;9879:1;9868:9;9864:17;9855:6;9811:71;:::i;:::-;9892:70;9958:2;9947:9;9943:18;9934:6;9892:70;:::i;:::-;9641:328;;;;;:::o;9975:655::-;10070:6;10078;10086;10135:2;10123:9;10114:7;10110:23;10106:32;10103:119;;;10141:79;;:::i;:::-;10103:119;10261:1;10286:53;10331:7;10322:6;10311:9;10307:22;10286:53;:::i;:::-;10276:63;;10232:117;10388:2;10414:53;10459:7;10450:6;10439:9;10435:22;10414:53;:::i;:::-;10404:63;;10359:118;10516:2;10542:71;10605:7;10596:6;10585:9;10581:22;10542:71;:::i;:::-;10532:81;;10487:136;9975:655;;;;;:::o;10636:180::-;10684:77;10681:1;10674:88;10781:4;10778:1;10771:15;10805:4;10802:1;10795:15;10822:201;10861:3;10880:19;10897:1;10880:19;:::i;:::-;10875:24;;10913:19;10930:1;10913:19;:::i;:::-;10908:24;;10955:1;10952;10948:9;10941:16;;10978:14;10973:3;10970:23;10967:49;;;10996:18;;:::i;:::-;10967:49;10822:201;;;;:::o;11029:143::-;11086:5;11117:6;11111:13;11102:22;;11133:33;11160:5;11133:33;:::i;:::-;11029:143;;;;:::o;11178:351::-;11248:6;11297:2;11285:9;11276:7;11272:23;11268:32;11265:119;;;11303:79;;:::i;:::-;11265:119;11423:1;11448:64;11504:7;11495:6;11484:9;11480:22;11448:64;:::i;:::-;11438:74;;11394:128;11178:351;;;;:::o;11535:332::-;11656:4;11694:2;11683:9;11679:18;11671:26;;11707:71;11775:1;11764:9;11760:17;11751:6;11707:71;:::i;:::-;11788:72;11856:2;11845:9;11841:18;11832:6;11788:72;:::i;:::-;11535:332;;;;;:::o;11873:86::-;11919:7;11948:5;11937:16;;11873:86;;;:::o;11965:::-;12000:7;12040:4;12033:5;12029:16;12018:27;;11965:86;;;:::o;12057:156::-;12114:9;12147:60;12163:43;12172:33;12199:5;12172:33;:::i;:::-;12163:43;:::i;:::-;12147:60;:::i;:::-;12134:73;;12057:156;;;:::o;12219:145::-;12313:44;12351:5;12313:44;:::i;:::-;12308:3;12301:57;12219:145;;:::o;12370:346::-;12498:4;12536:2;12525:9;12521:18;12513:26;;12549:78;12624:1;12613:9;12609:17;12600:6;12549:78;:::i;:::-;12637:72;12705:2;12694:9;12690:18;12681:6;12637:72;:::i;:::-;12370:346;;;;;:::o;12722:204::-;12761:4;12781:19;12798:1;12781:19;:::i;:::-;12776:24;;12814:19;12831:1;12814:19;:::i;:::-;12809:24;;12857:1;12854;12850:9;12842:17;;12881:14;12875:4;12872:24;12869:50;;;12899:18;;:::i;:::-;12869:50;12722:204;;;;:::o" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "PAUSER_ROLE()": "e63ab1e9", + "REGISTRAR_MANAGER_ROLE()": "be8cd266", + "REGISTRAR_ROLE()": "f68e9553", + "acceptDefaultAdminTransfer()": "cefc1429", + "beginDefaultAdminTransfer(address)": "634e93da", + "cancelDefaultAdminTransfer()": "d602b9fd", + "changeDefaultAdminDelay(uint48)": "649a5ec7", + "defaultAdmin()": "84ef8ffc", + "defaultAdminDelay()": "cc8463c8", + "defaultAdminDelayIncreaseWait()": "022d63fb", + "domainHashToRecord(bytes32)": "5b377fa2", + "domainOwner(bytes32)": "d26cdd20", + "domainVerifier(bytes32)": "5a75199a", + "domainVerifierSetTime(bytes32)": "a2a6c0eb", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "isDomainOwner(bytes32,address)": "8023597e", + "owner()": "8da5cb5b", + "pause()": "8456cb59", + "paused()": "5c975abb", + "pendingDefaultAdmin()": "cf6eefb7", + "pendingDefaultAdminDelay()": "a1eda53c", + "registerDomain(address,bytes32)": "a8c00861", + "registerDomainWithVerifier(address,bytes32,address)": "dd738e6c", + "registry()": "7b103999", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "rollbackDefaultAdminDelay()": "0aa6220b", + "setVerifier(bytes32,address)": "a692b9ef", + "supportsInterface(bytes4)": "01ffc9a7", + "unpause()": "3f4ba83a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"initialDelay\",\"type\":\"uint48\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"AccountIsNotDomainOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registrar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"DomainRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"contract IVerifier\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IVerifier\",\"name\":\"newVerifie\",\"type\":\"address\"}],\"name\":\"VerifierSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTRAR_MANAGER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTRAR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nameHash\",\"type\":\"bytes32\"}],\"name\":\"domainHashToRecord\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ownerSetTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verifierSetTime\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainVerifier\",\"outputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainVerifierSetTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDomainOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"registerDomain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"registerDomainWithVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ISciRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":[],\"name\":\"rollbackDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"setVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"See {ISciRegistry}.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AccountIsNotDomainOwner(address,bytes32)\":[{\"details\":\"Thrown when the `account` is not the owner of the domainhash.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"DomainRegistered(address,address,bytes32)\":{\"details\":\"Emitted when a new `domain` with the `domainHash` is registered by the `owner`.\"},\"OwnerSet(address,bytes32,address,address)\":{\"details\":\"Emitted when the owner of a `domainHash` is set.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"VerifierSet(address,bytes32,address,address)\":{\"details\":\"Emitted when the `owner` of the `domainHash` adds a `verifier`. Note: This will also be emitted when the verifier is changed.\"}},\"kind\":\"dev\",\"methods\":{\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"constructor\":{\"details\":\"Constructor to initialize the Registry contract. Sets the REGISTRAR_MANAGER_ROLE as the admin role of REGISTRAR_ROLE.\",\"params\":{\"initialDelay\":\"The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\"}},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"domainOwner(bytes32)\":{\"details\":\"See {ISciRegistry-domainOwner}.\"},\"domainVerifier(bytes32)\":{\"details\":\"See {ISciRegistry-domainVerifier}.\"},\"domainVerifierSetTime(bytes32)\":{\"details\":\"See {ISciRegistry-domainVerifierSetTime}.\"},\"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 a role to an account.\",\"params\":{\"account\":\"The account receiving the role. Note: Overrides the OpenZeppelin function to require the caller to have the admin role for the role being granted.\",\"role\":\"The role to grant.\"}},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isDomainOwner(bytes32,address)\":{\"details\":\"See {ISciRegistry-isDomainOwner}.\"},\"owner()\":{\"details\":\"See {IERC5313-owner}.\"},\"pause()\":{\"details\":\"Pauses registering a domain and setting a verifier.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"registerDomain(address,bytes32)\":{\"details\":\"See {ISciRegistry-registerDomain}.\"},\"registerDomainWithVerifier(address,bytes32,address)\":{\"details\":\"See {ISciRegistry-registerDomainWithVerifier}.\"},\"renounceRole(bytes32,address)\":{\"details\":\"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role.\"},\"revokeRole(bytes32,address)\":{\"details\":\"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"},\"setVerifier(bytes32,address)\":{\"details\":\"See {ISciRegistry-setVerifier}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"unpause()\":{\"details\":\"Unpauses registering a domain and setting a verifier.\"}},\"stateVariables\":{\"domainHashToRecord\":{\"details\":\"Maps the namehash of a domain to a Record.\"}},\"title\":\"Registry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SciRegistry/SciRegistry.sol\":\"SciRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x969a4661694319a003d037ccbf7c8310f8994d746b763c933d3f76d906e67203\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3992218d90b149834c12bb2bbbb09fcf6cd44605bb37655fc5c42e2f0eaacdea\",\"dweb:/ipfs/QmaqD3yHE46mKZpqFZyMGZHEca5zcp2d53mYVhJz7Jzys2\"]},\"@openzeppelin/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0x22412c268e74cc3cbf550aecc2f7456f6ac40783058e219cfe09f26f4d396621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b841021f25480424d2359de4869e60e77f790f52e8e85f07aa389543024b559\",\"dweb:/ipfs/QmV7U5ehV5xe3QrbE8ErxfWSSzK1T1dGeizXvYPjWpNDGq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"contracts/DomainMangager/DomainManager.sol\":{\"keccak256\":\"0x2f6561beb24705ed75d5b62c52b89b94f2f83221e5ae2edc4bb73cae522c05fc\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b550be56d1243674f84c9ebec6d483b5b695032c1ce0e5a42aba69e4e1f464c1\",\"dweb:/ipfs/QmNx936U7GV6yaxsM2VfYMVA4P1ceLafseYzerkPws8ZDK\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/SciRegistry/SciRegistry.sol\":{\"keccak256\":\"0x93d0f125b237d0c00d5ab6e8afec45eb0b733a8a0dceec97e43131d1b0b6e528\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://fb2eea0bf946788fe47f86f930ece40b76c428e1046f9c89490e1010ba50c06e\",\"dweb:/ipfs/QmRQxAQvdMHh1e7N73ePhUbKVAjKByYdTANJCeufN6bK3j\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 1219, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "_roles", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_bytes32,t_struct(RoleData)1214_storage)" + }, + { + "astId": 1741, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "_pendingDefaultAdmin", + "offset": 0, + "slot": "1", + "type": "t_address" + }, + { + "astId": 1743, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "_pendingDefaultAdminSchedule", + "offset": 20, + "slot": "1", + "type": "t_uint48" + }, + { + "astId": 1745, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "_currentDelay", + "offset": 26, + "slot": "1", + "type": "t_uint48" + }, + { + "astId": 1747, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "_currentDefaultAdmin", + "offset": 0, + "slot": "2", + "type": "t_address" + }, + { + "astId": 1749, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "_pendingDelay", + "offset": 20, + "slot": "2", + "type": "t_uint48" + }, + { + "astId": 1751, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "_pendingDelaySchedule", + "offset": 26, + "slot": "2", + "type": "t_uint48" + }, + { + "astId": 3428, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "_paused", + "offset": 0, + "slot": "3", + "type": "t_bool" + }, + { + "astId": 7145, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "domainHashToRecord", + "offset": 0, + "slot": "4", + "type": "t_mapping(t_bytes32,t_struct(Record)7124_storage)" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_contract(IVerifier)7453": { + "encoding": "inplace", + "label": "contract IVerifier", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_bytes32,t_struct(Record)7124_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct SciRegistry.Record)", + "numberOfBytes": "32", + "value": "t_struct(Record)7124_storage" + }, + "t_mapping(t_bytes32,t_struct(RoleData)1214_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct AccessControl.RoleData)", + "numberOfBytes": "32", + "value": "t_struct(RoleData)1214_storage" + }, + "t_struct(Record)7124_storage": { + "encoding": "inplace", + "label": "struct SciRegistry.Record", + "members": [ + { + "astId": 7116, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "owner", + "offset": 0, + "slot": "0", + "type": "t_address" + }, + { + "astId": 7119, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "verifier", + "offset": 0, + "slot": "1", + "type": "t_contract(IVerifier)7453" + }, + { + "astId": 7121, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "ownerSetTime", + "offset": 0, + "slot": "2", + "type": "t_uint256" + }, + { + "astId": 7123, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "verifierSetTime", + "offset": 0, + "slot": "3", + "type": "t_uint256" + } + ], + "numberOfBytes": "128" + }, + "t_struct(RoleData)1214_storage": { + "encoding": "inplace", + "label": "struct AccessControl.RoleData", + "members": [ + { + "astId": 1211, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "hasRole", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_address,t_bool)" + }, + { + "astId": 1213, + "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", + "label": "adminRole", + "offset": 0, + "slot": "1", + "type": "t_bytes32" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint48": { + "encoding": "inplace", + "label": "uint48", + "numberOfBytes": "6" + } + } + } + } + }, + "contracts/Verifiers/IVerifier.sol": { + "IVerifier": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "name": "isVerified", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "isVerified(bytes32,address,uint256)": "046852d0" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"isVerified\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"Required interface of a Verifier compliant contract for the SCI Registry.\",\"kind\":\"dev\",\"methods\":{\"isVerified(bytes32,address,uint256)\":{\"details\":\"Verifies if a contract in a specific chain is authorized to interact within a domain.\",\"params\":{\"chainId\":\"The chain where the contract is deployed.\",\"contractAddress\":\"The address of the contract trying to be verified.\",\"domainHash\":\"The domain's namehash.\"},\"returns\":{\"_0\":\"a uint256 representing the time when the contract was verified. If the contract is not verified, it returns 0. Note: The return timestamp is a best effor approach to provide the time when the contract was verified. For verifiers that can't know when the contract was verified they could return when the verifier was deployed.\"}}},\"title\":\"IVerifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Verifiers/IVerifier.sol\":\"IVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/Verifiers/PublicListVerifier.sol": { + "PublicListVerifier": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + } + ], + "name": "AccountIsNotDomainOwner", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "msgSender", + "type": "address" + } + ], + "name": "AddressAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "msgSender", + "type": "address" + } + ], + "name": "AddressRemoved", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address[]", + "name": "contractAddresses", + "type": "address[]" + }, + { + "internalType": "uint256[][]", + "name": "chainIds", + "type": "uint256[][]" + } + ], + "name": "addAddresses", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "name": "isVerified", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract ISciRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address[]", + "name": "contractAddresses", + "type": "address[]" + }, + { + "internalType": "uint256[][]", + "name": "chainIds", + "type": "uint256[][]" + } + ], + "name": "removeAddresses", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "domainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "name": "verifiedContracts", + "outputs": [ + { + "internalType": "uint256", + "name": "registerTimestamp", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_6533": { + "entryPoint": null, + "id": 6533, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_7514": { + "entryPoint": null, + "id": 7514, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 188, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 209, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 147, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 115, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 110, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 165, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1199:37", + "nodeType": "YulBlock", + "src": "0:1199:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "379:81:37", + "nodeType": "YulBlock", + "src": "379:81:37", + "statements": [ + { + "nativeSrc": "389:65:37", + "nodeType": "YulAssignment", + "src": "389:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "404:5:37", + "nodeType": "YulIdentifier", + "src": "404:5:37" + }, + { + "kind": "number", + "nativeSrc": "411:42:37", + "nodeType": "YulLiteral", + "src": "411:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "400:3:37", + "nodeType": "YulIdentifier", + "src": "400:3:37" + }, + "nativeSrc": "400:54:37", + "nodeType": "YulFunctionCall", + "src": "400:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:37", + "nodeType": "YulIdentifier", + "src": "389:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:37", + "nodeType": "YulTypedName", + "src": "361:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:37", + "nodeType": "YulTypedName", + "src": "371:7:37", + "type": "" + } + ], + "src": "334:126:37" + }, + { + "body": { + "nativeSrc": "511:51:37", + "nodeType": "YulBlock", + "src": "511:51:37", + "statements": [ + { + "nativeSrc": "521:35:37", + "nodeType": "YulAssignment", + "src": "521:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "550:5:37", + "nodeType": "YulIdentifier", + "src": "550:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:37", + "nodeType": "YulIdentifier", + "src": "532:17:37" + }, + "nativeSrc": "532:24:37", + "nodeType": "YulFunctionCall", + "src": "532:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:37", + "nodeType": "YulIdentifier", + "src": "521:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "466:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "493:5:37", + "nodeType": "YulTypedName", + "src": "493:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "503:7:37", + "nodeType": "YulTypedName", + "src": "503:7:37", + "type": "" + } + ], + "src": "466:96:37" + }, + { + "body": { + "nativeSrc": "611:79:37", + "nodeType": "YulBlock", + "src": "611:79:37", + "statements": [ + { + "body": { + "nativeSrc": "668:16:37", + "nodeType": "YulBlock", + "src": "668:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:37", + "nodeType": "YulLiteral", + "src": "677:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:37", + "nodeType": "YulLiteral", + "src": "680:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "670:6:37", + "nodeType": "YulIdentifier", + "src": "670:6:37" + }, + "nativeSrc": "670:12:37", + "nodeType": "YulFunctionCall", + "src": "670:12:37" + }, + "nativeSrc": "670:12:37", + "nodeType": "YulExpressionStatement", + "src": "670:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "634:5:37", + "nodeType": "YulIdentifier", + "src": "634:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:37", + "nodeType": "YulIdentifier", + "src": "659:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:37", + "nodeType": "YulIdentifier", + "src": "641:17:37" + }, + "nativeSrc": "641:24:37", + "nodeType": "YulFunctionCall", + "src": "641:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "631:2:37", + "nodeType": "YulIdentifier", + "src": "631:2:37" + }, + "nativeSrc": "631:35:37", + "nodeType": "YulFunctionCall", + "src": "631:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:37", + "nodeType": "YulIdentifier", + "src": "624:6:37" + }, + "nativeSrc": "624:43:37", + "nodeType": "YulFunctionCall", + "src": "624:43:37" + }, + "nativeSrc": "621:63:37", + "nodeType": "YulIf", + "src": "621:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:37", + "nodeType": "YulTypedName", + "src": "604:5:37", + "type": "" + } + ], + "src": "568:122:37" + }, + { + "body": { + "nativeSrc": "759:80:37", + "nodeType": "YulBlock", + "src": "759:80:37", + "statements": [ + { + "nativeSrc": "769:22:37", + "nodeType": "YulAssignment", + "src": "769:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "784:6:37", + "nodeType": "YulIdentifier", + "src": "784:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "778:5:37", + "nodeType": "YulIdentifier", + "src": "778:5:37" + }, + "nativeSrc": "778:13:37", + "nodeType": "YulFunctionCall", + "src": "778:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "769:5:37", + "nodeType": "YulIdentifier", + "src": "769:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "827:5:37", + "nodeType": "YulIdentifier", + "src": "827:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "800:26:37", + "nodeType": "YulIdentifier", + "src": "800:26:37" + }, + "nativeSrc": "800:33:37", + "nodeType": "YulFunctionCall", + "src": "800:33:37" + }, + "nativeSrc": "800:33:37", + "nodeType": "YulExpressionStatement", + "src": "800:33:37" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "696:143:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "737:6:37", + "nodeType": "YulTypedName", + "src": "737:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "745:3:37", + "nodeType": "YulTypedName", + "src": "745:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "753:5:37", + "nodeType": "YulTypedName", + "src": "753:5:37", + "type": "" + } + ], + "src": "696:143:37" + }, + { + "body": { + "nativeSrc": "922:274:37", + "nodeType": "YulBlock", + "src": "922:274:37", + "statements": [ + { + "body": { + "nativeSrc": "968:83:37", + "nodeType": "YulBlock", + "src": "968:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "970:77:37", + "nodeType": "YulIdentifier", + "src": "970:77:37" + }, + "nativeSrc": "970:79:37", + "nodeType": "YulFunctionCall", + "src": "970:79:37" + }, + "nativeSrc": "970:79:37", + "nodeType": "YulExpressionStatement", + "src": "970:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "943:7:37", + "nodeType": "YulIdentifier", + "src": "943:7:37" + }, + { + "name": "headStart", + "nativeSrc": "952:9:37", + "nodeType": "YulIdentifier", + "src": "952:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "939:3:37", + "nodeType": "YulIdentifier", + "src": "939:3:37" + }, + "nativeSrc": "939:23:37", + "nodeType": "YulFunctionCall", + "src": "939:23:37" + }, + { + "kind": "number", + "nativeSrc": "964:2:37", + "nodeType": "YulLiteral", + "src": "964:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "935:3:37", + "nodeType": "YulIdentifier", + "src": "935:3:37" + }, + "nativeSrc": "935:32:37", + "nodeType": "YulFunctionCall", + "src": "935:32:37" + }, + "nativeSrc": "932:119:37", + "nodeType": "YulIf", + "src": "932:119:37" + }, + { + "nativeSrc": "1061:128:37", + "nodeType": "YulBlock", + "src": "1061:128:37", + "statements": [ + { + "nativeSrc": "1076:15:37", + "nodeType": "YulVariableDeclaration", + "src": "1076:15:37", + "value": { + "kind": "number", + "nativeSrc": "1090:1:37", + "nodeType": "YulLiteral", + "src": "1090:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1080:6:37", + "nodeType": "YulTypedName", + "src": "1080:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1105:74:37", + "nodeType": "YulAssignment", + "src": "1105:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1151:9:37", + "nodeType": "YulIdentifier", + "src": "1151:9:37" + }, + { + "name": "offset", + "nativeSrc": "1162:6:37", + "nodeType": "YulIdentifier", + "src": "1162:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1147:3:37", + "nodeType": "YulIdentifier", + "src": "1147:3:37" + }, + "nativeSrc": "1147:22:37", + "nodeType": "YulFunctionCall", + "src": "1147:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1171:7:37", + "nodeType": "YulIdentifier", + "src": "1171:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "1115:31:37", + "nodeType": "YulIdentifier", + "src": "1115:31:37" + }, + "nativeSrc": "1115:64:37", + "nodeType": "YulFunctionCall", + "src": "1115:64:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1105:6:37", + "nodeType": "YulIdentifier", + "src": "1105:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nativeSrc": "845:351:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "892:9:37", + "nodeType": "YulTypedName", + "src": "892:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "903:7:37", + "nodeType": "YulTypedName", + "src": "903:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "915:6:37", + "nodeType": "YulTypedName", + "src": "915:6:37", + "type": "" + } + ], + "src": "845:351:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a060405234801561001057600080fd5b50604051610e03380380610e03833981810160405281019061003291906100d1565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506100fe565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061009e82610073565b9050919050565b6100ae81610093565b81146100b957600080fd5b50565b6000815190506100cb816100a5565b92915050565b6000602082840312156100e7576100e661006e565b5b60006100f5848285016100bc565b91505092915050565b608051610ce36101206000396000818161045301526106980152610ce36000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063046852d01461005c5780630f59a4981461008c57806379fb477a146100a85780637b103999146100d857806382ef31d9146100f6575b600080fd5b61007660048036038101906100719190610862565b610112565b60405161008391906108c4565b60405180910390f35b6100a660048036038101906100a1919061099a565b61022a565b005b6100c260048036038101906100bd9190610862565b61041f565b6040516100cf91906108c4565b60405180910390f35b6100e0610451565b6040516100ed9190610a8e565b60405180910390f35b610110600480360381019061010b919061099a565b610475565b005b60008060008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600081146101895780915050610223565b60008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020019081526020016000205490506000811461021d5780915050610223565b60009150505b9392505050565b610232610677565b8561023d828261067f565b60005b868690508110156104155760005b85858381811061026157610260610aa9565b5b90506020028101906102739190610ae7565b905081101561040957426000808b815260200190815260200160002060008a8a868181106102a4576102a3610aa9565b5b90506020020160208101906102b99190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061030857610307610aa9565b5b905060200281019061031a9190610ae7565b8581811061032b5761032a610aa9565b5b9050602002013581526020019081526020016000208190555087878381811061035757610356610aa9565b5b905060200201602081019061036c9190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1686868481811061039557610394610aa9565b5b90506020028101906103a79190610ae7565b838181106103b8576103b7610aa9565b5b905060200201358a7fc177490b924686771eb8a2b77bee53e5913e624c90b60207d396f81cfe6e7cd06103e9610677565b6040516103f69190610b86565b60405180910390a480600101905061024e565b50806001019050610240565b5050505050505050565b600060205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b61047d610677565b85610488828261067f565b60005b8686905081101561066d5760005b8585838181106104ac576104ab610aa9565b5b90506020028101906104be9190610ae7565b90508110156106615760008060008b815260200190815260200160002060008a8a868181106104f0576104ef610aa9565b5b90506020020160208101906105059190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061055457610553610aa9565b5b90506020028101906105669190610ae7565b8581811061057757610576610aa9565b5b905060200201358152602001908152602001600020819055508787838181106105a3576105a2610aa9565b5b90506020020160208101906105b89190610b4a565b73ffffffffffffffffffffffffffffffffffffffff168686848181106105e1576105e0610aa9565b5b90506020028101906105f39190610ae7565b8381811061060457610603610aa9565b5b905060200201358a7f36be184145fbd476ffe0597f987f89d7490b926e334512a42de54749eee25e75610635610677565b6040516106429190610b86565b60405180910390a48060010190508061065a90610bd0565b9050610499565b5080600101905061048b565b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016106ef9190610c27565b602060405180830381865afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190610c57565b73ffffffffffffffffffffffffffffffffffffffff161461078a5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401610781929190610c84565b60405180910390fd5b5050565b600080fd5b600080fd5b6000819050919050565b6107ab81610798565b81146107b657600080fd5b50565b6000813590506107c8816107a2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107f9826107ce565b9050919050565b610809816107ee565b811461081457600080fd5b50565b60008135905061082681610800565b92915050565b6000819050919050565b61083f8161082c565b811461084a57600080fd5b50565b60008135905061085c81610836565b92915050565b60008060006060848603121561087b5761087a61078e565b5b6000610889868287016107b9565b935050602061089a86828701610817565b92505060406108ab8682870161084d565b9150509250925092565b6108be8161082c565b82525050565b60006020820190506108d960008301846108b5565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610904576109036108df565b5b8235905067ffffffffffffffff811115610921576109206108e4565b5b60208301915083602082028301111561093d5761093c6108e9565b5b9250929050565b60008083601f84011261095a576109596108df565b5b8235905067ffffffffffffffff811115610977576109766108e4565b5b602083019150836020820283011115610993576109926108e9565b5b9250929050565b6000806000806000606086880312156109b6576109b561078e565b5b60006109c4888289016107b9565b955050602086013567ffffffffffffffff8111156109e5576109e4610793565b5b6109f1888289016108ee565b9450945050604086013567ffffffffffffffff811115610a1457610a13610793565b5b610a2088828901610944565b92509250509295509295909350565b6000819050919050565b6000610a54610a4f610a4a846107ce565b610a2f565b6107ce565b9050919050565b6000610a6682610a39565b9050919050565b6000610a7882610a5b565b9050919050565b610a8881610a6d565b82525050565b6000602082019050610aa36000830184610a7f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112610b0457610b03610ad8565b5b80840192508235915067ffffffffffffffff821115610b2657610b25610add565b5b602083019250602082023603831315610b4257610b41610ae2565b5b509250929050565b600060208284031215610b6057610b5f61078e565b5b6000610b6e84828501610817565b91505092915050565b610b80816107ee565b82525050565b6000602082019050610b9b6000830184610b77565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bdb8261082c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c0d57610c0c610ba1565b5b600182019050919050565b610c2181610798565b82525050565b6000602082019050610c3c6000830184610c18565b92915050565b600081519050610c5181610800565b92915050565b600060208284031215610c6d57610c6c61078e565b5b6000610c7b84828501610c42565b91505092915050565b6000604082019050610c996000830185610b77565b610ca66020830184610c18565b939250505056fea2646970667358221220e19e189f4f848086a4754a9206058bc9b93d6e078c6e1ebe9364c03045d6085764736f6c634300081c0033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xE03 CODESIZE SUB DUP1 PUSH2 0xE03 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xD1 JUMP JUMPDEST DUP1 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH2 0xFE JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E DUP3 PUSH2 0x73 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAE DUP2 PUSH2 0x93 JUMP JUMPDEST DUP2 EQ PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xCB DUP2 PUSH2 0xA5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE7 JUMPI PUSH2 0xE6 PUSH2 0x6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF5 DUP5 DUP3 DUP6 ADD PUSH2 0xBC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xCE3 PUSH2 0x120 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x453 ADD MSTORE PUSH2 0x698 ADD MSTORE PUSH2 0xCE3 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x46852D0 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0xF59A498 EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x79FB477A EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0xD8 JUMPI DUP1 PUSH4 0x82EF31D9 EQ PUSH2 0xF6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x862 JUMP JUMPDEST PUSH2 0x112 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x8C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA1 SWAP2 SWAP1 PUSH2 0x99A JUMP JUMPDEST PUSH2 0x22A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x862 JUMP JUMPDEST PUSH2 0x41F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x8C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE0 PUSH2 0x451 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0xA8E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x110 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10B SWAP2 SWAP1 PUSH2 0x99A JUMP JUMPDEST PUSH2 0x475 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x189 JUMPI DUP1 SWAP2 POP POP PUSH2 0x223 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x21D JUMPI DUP1 SWAP2 POP POP PUSH2 0x223 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x232 PUSH2 0x677 JUMP JUMPDEST DUP6 PUSH2 0x23D DUP3 DUP3 PUSH2 0x67F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0x415 JUMPI PUSH1 0x0 JUMPDEST DUP6 DUP6 DUP4 DUP2 DUP2 LT PUSH2 0x261 JUMPI PUSH2 0x260 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x273 SWAP2 SWAP1 PUSH2 0xAE7 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x409 JUMPI TIMESTAMP PUSH1 0x0 DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x2A4 JUMPI PUSH2 0x2A3 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0xB4A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP9 DUP7 DUP2 DUP2 LT PUSH2 0x308 JUMPI PUSH2 0x307 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x31A SWAP2 SWAP1 PUSH2 0xAE7 JUMP JUMPDEST DUP6 DUP2 DUP2 LT PUSH2 0x32B JUMPI PUSH2 0x32A PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x357 JUMPI PUSH2 0x356 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x36C SWAP2 SWAP1 PUSH2 0xB4A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x395 JUMPI PUSH2 0x394 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x3A7 SWAP2 SWAP1 PUSH2 0xAE7 JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x3B8 JUMPI PUSH2 0x3B7 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP11 PUSH32 0xC177490B924686771EB8A2B77BEE53E5913E624C90B60207D396F81CFE6E7CD0 PUSH2 0x3E9 PUSH2 0x677 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F6 SWAP2 SWAP1 PUSH2 0xB86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x24E JUMP JUMPDEST POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x240 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP3 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP3 POP SWAP3 POP POP POP SLOAD DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x47D PUSH2 0x677 JUMP JUMPDEST DUP6 PUSH2 0x488 DUP3 DUP3 PUSH2 0x67F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0x66D JUMPI PUSH1 0x0 JUMPDEST DUP6 DUP6 DUP4 DUP2 DUP2 LT PUSH2 0x4AC JUMPI PUSH2 0x4AB PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x4BE SWAP2 SWAP1 PUSH2 0xAE7 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x661 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x4F0 JUMPI PUSH2 0x4EF PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x505 SWAP2 SWAP1 PUSH2 0xB4A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP9 DUP7 DUP2 DUP2 LT PUSH2 0x554 JUMPI PUSH2 0x553 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x566 SWAP2 SWAP1 PUSH2 0xAE7 JUMP JUMPDEST DUP6 DUP2 DUP2 LT PUSH2 0x577 JUMPI PUSH2 0x576 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x5A3 JUMPI PUSH2 0x5A2 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x5B8 SWAP2 SWAP1 PUSH2 0xB4A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x5E1 JUMPI PUSH2 0x5E0 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x5F3 SWAP2 SWAP1 PUSH2 0xAE7 JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x604 JUMPI PUSH2 0x603 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP11 PUSH32 0x36BE184145FBD476FFE0597F987F89D7490B926E334512A42DE54749EEE25E75 PUSH2 0x635 PUSH2 0x677 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x642 SWAP2 SWAP1 PUSH2 0xB86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x1 ADD SWAP1 POP DUP1 PUSH2 0x65A SWAP1 PUSH2 0xBD0 JUMP JUMPDEST SWAP1 POP PUSH2 0x499 JUMP JUMPDEST POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x48B JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD26CDD20 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP2 SWAP1 PUSH2 0xC27 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x70C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x730 SWAP2 SWAP1 PUSH2 0xC57 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x78A JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x2EBB0EF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x781 SWAP3 SWAP2 SWAP1 PUSH2 0xC84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7AB DUP2 PUSH2 0x798 JUMP JUMPDEST DUP2 EQ PUSH2 0x7B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7C8 DUP2 PUSH2 0x7A2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7F9 DUP3 PUSH2 0x7CE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x809 DUP2 PUSH2 0x7EE JUMP JUMPDEST DUP2 EQ PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x826 DUP2 PUSH2 0x800 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x83F DUP2 PUSH2 0x82C JUMP JUMPDEST DUP2 EQ PUSH2 0x84A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x85C DUP2 PUSH2 0x836 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x87B JUMPI PUSH2 0x87A PUSH2 0x78E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x889 DUP7 DUP3 DUP8 ADD PUSH2 0x7B9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x89A DUP7 DUP3 DUP8 ADD PUSH2 0x817 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x8AB DUP7 DUP3 DUP8 ADD PUSH2 0x84D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x8BE DUP2 PUSH2 0x82C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x8D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x904 JUMPI PUSH2 0x903 PUSH2 0x8DF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x921 JUMPI PUSH2 0x920 PUSH2 0x8E4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x93D JUMPI PUSH2 0x93C PUSH2 0x8E9 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x95A JUMPI PUSH2 0x959 PUSH2 0x8DF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x977 JUMPI PUSH2 0x976 PUSH2 0x8E4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x993 JUMPI PUSH2 0x992 PUSH2 0x8E9 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x9B6 JUMPI PUSH2 0x9B5 PUSH2 0x78E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x9C4 DUP9 DUP3 DUP10 ADD PUSH2 0x7B9 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9E5 JUMPI PUSH2 0x9E4 PUSH2 0x793 JUMP JUMPDEST JUMPDEST PUSH2 0x9F1 DUP9 DUP3 DUP10 ADD PUSH2 0x8EE JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA14 JUMPI PUSH2 0xA13 PUSH2 0x793 JUMP JUMPDEST JUMPDEST PUSH2 0xA20 DUP9 DUP3 DUP10 ADD PUSH2 0x944 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA54 PUSH2 0xA4F PUSH2 0xA4A DUP5 PUSH2 0x7CE JUMP JUMPDEST PUSH2 0xA2F JUMP JUMPDEST PUSH2 0x7CE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA66 DUP3 PUSH2 0xA39 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA78 DUP3 PUSH2 0xA5B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA88 DUP2 PUSH2 0xA6D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAA3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA7F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0xB04 JUMPI PUSH2 0xB03 PUSH2 0xAD8 JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xB26 JUMPI PUSH2 0xB25 PUSH2 0xADD JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x20 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0xB42 JUMPI PUSH2 0xB41 PUSH2 0xAE2 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB60 JUMPI PUSH2 0xB5F PUSH2 0x78E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB6E DUP5 DUP3 DUP6 ADD PUSH2 0x817 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB80 DUP2 PUSH2 0x7EE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB9B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB77 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBDB DUP3 PUSH2 0x82C JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0xC0D JUMPI PUSH2 0xC0C PUSH2 0xBA1 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC21 DUP2 PUSH2 0x798 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC3C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC18 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xC51 DUP2 PUSH2 0x800 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC6D JUMPI PUSH2 0xC6C PUSH2 0x78E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC7B DUP5 DUP3 DUP6 ADD PUSH2 0xC42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xC99 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xB77 JUMP JUMPDEST PUSH2 0xCA6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xC18 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE1 SWAP15 XOR SWAP16 0x4F DUP5 DUP1 DUP7 LOG4 PUSH22 0x4A9206058BC9B93D6E078C6E1EBE9364C03045D60857 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "626:3305:36:-:0;;;1536:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1581:9;1171:19:27;1147:44;;;;;;;;;;1096:102;1536:58:36;626:3305;;88:117:37;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;626:3305:36:-;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_checkDomainOwner_6555": { + "entryPoint": 1663, + "id": 6555, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_3401": { + "entryPoint": 1655, + "id": 3401, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@addAddresses_7592": { + "entryPoint": 554, + "id": 7592, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@isVerified_7721": { + "entryPoint": 274, + "id": 7721, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@registry_6499": { + "entryPoint": 1105, + "id": 6499, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@removeAddresses_7672": { + "entryPoint": 1141, + "id": 7672, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@verifiedContracts_7483": { + "entryPoint": 1055, + "id": 7483, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 2071, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 3138, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 2286, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr": { + "entryPoint": 2372, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_bytes32": { + "entryPoint": 1977, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 2125, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 2890, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 3159, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_addresst_uint256": { + "entryPoint": 2146, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bytes32t_array$_t_address_$dyn_calldata_ptrt_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr": { + "entryPoint": 2458, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 2935, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 3096, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack": { + "entryPoint": 2687, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 2229, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 2950, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { + "entryPoint": 3204, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 3111, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed": { + "entryPoint": 2702, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 2244, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr": { + "entryPoint": 2791, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2030, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 1944, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1998, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 2092, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_ISciRegistry_$7088_to_t_address": { + "entryPoint": 2669, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 2651, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 2617, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 2607, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 2977, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 2729, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { + "entryPoint": 2276, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 2271, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a": { + "entryPoint": 2781, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad": { + "entryPoint": 2776, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 2281, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e": { + "entryPoint": 2786, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 1939, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 1934, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 2048, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 1954, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 2102, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:9803:37", + "nodeType": "YulBlock", + "src": "0:9803:37", + "statements": [ + { + "body": { + "nativeSrc": "47:35:37", + "nodeType": "YulBlock", + "src": "47:35:37", + "statements": [ + { + "nativeSrc": "57:19:37", + "nodeType": "YulAssignment", + "src": "57:19:37", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:37", + "nodeType": "YulLiteral", + "src": "73:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:37", + "nodeType": "YulIdentifier", + "src": "67:5:37" + }, + "nativeSrc": "67:9:37", + "nodeType": "YulFunctionCall", + "src": "67:9:37" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:37", + "nodeType": "YulIdentifier", + "src": "57:6:37" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:37", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:37", + "nodeType": "YulTypedName", + "src": "40:6:37", + "type": "" + } + ], + "src": "7:75:37" + }, + { + "body": { + "nativeSrc": "177:28:37", + "nodeType": "YulBlock", + "src": "177:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:37", + "nodeType": "YulLiteral", + "src": "194:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:37", + "nodeType": "YulLiteral", + "src": "197:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:37", + "nodeType": "YulIdentifier", + "src": "187:6:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulFunctionCall", + "src": "187:12:37" + }, + "nativeSrc": "187:12:37", + "nodeType": "YulExpressionStatement", + "src": "187:12:37" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:37", + "nodeType": "YulFunctionDefinition", + "src": "88:117:37" + }, + { + "body": { + "nativeSrc": "300:28:37", + "nodeType": "YulBlock", + "src": "300:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:37", + "nodeType": "YulLiteral", + "src": "317:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:37", + "nodeType": "YulLiteral", + "src": "320:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:37", + "nodeType": "YulIdentifier", + "src": "310:6:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulFunctionCall", + "src": "310:12:37" + }, + "nativeSrc": "310:12:37", + "nodeType": "YulExpressionStatement", + "src": "310:12:37" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:37", + "nodeType": "YulFunctionDefinition", + "src": "211:117:37" + }, + { + "body": { + "nativeSrc": "379:32:37", + "nodeType": "YulBlock", + "src": "379:32:37", + "statements": [ + { + "nativeSrc": "389:16:37", + "nodeType": "YulAssignment", + "src": "389:16:37", + "value": { + "name": "value", + "nativeSrc": "400:5:37", + "nodeType": "YulIdentifier", + "src": "400:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:37", + "nodeType": "YulIdentifier", + "src": "389:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "334:77:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:37", + "nodeType": "YulTypedName", + "src": "361:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:37", + "nodeType": "YulTypedName", + "src": "371:7:37", + "type": "" + } + ], + "src": "334:77:37" + }, + { + "body": { + "nativeSrc": "460:79:37", + "nodeType": "YulBlock", + "src": "460:79:37", + "statements": [ + { + "body": { + "nativeSrc": "517:16:37", + "nodeType": "YulBlock", + "src": "517:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "526:1:37", + "nodeType": "YulLiteral", + "src": "526:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "529:1:37", + "nodeType": "YulLiteral", + "src": "529:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "519:6:37", + "nodeType": "YulIdentifier", + "src": "519:6:37" + }, + "nativeSrc": "519:12:37", + "nodeType": "YulFunctionCall", + "src": "519:12:37" + }, + "nativeSrc": "519:12:37", + "nodeType": "YulExpressionStatement", + "src": "519:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "483:5:37", + "nodeType": "YulIdentifier", + "src": "483:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "508:5:37", + "nodeType": "YulIdentifier", + "src": "508:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "490:17:37", + "nodeType": "YulIdentifier", + "src": "490:17:37" + }, + "nativeSrc": "490:24:37", + "nodeType": "YulFunctionCall", + "src": "490:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "480:2:37", + "nodeType": "YulIdentifier", + "src": "480:2:37" + }, + "nativeSrc": "480:35:37", + "nodeType": "YulFunctionCall", + "src": "480:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "473:6:37", + "nodeType": "YulIdentifier", + "src": "473:6:37" + }, + "nativeSrc": "473:43:37", + "nodeType": "YulFunctionCall", + "src": "473:43:37" + }, + "nativeSrc": "470:63:37", + "nodeType": "YulIf", + "src": "470:63:37" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nativeSrc": "417:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "453:5:37", + "nodeType": "YulTypedName", + "src": "453:5:37", + "type": "" + } + ], + "src": "417:122:37" + }, + { + "body": { + "nativeSrc": "597:87:37", + "nodeType": "YulBlock", + "src": "597:87:37", + "statements": [ + { + "nativeSrc": "607:29:37", + "nodeType": "YulAssignment", + "src": "607:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "629:6:37", + "nodeType": "YulIdentifier", + "src": "629:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "616:12:37", + "nodeType": "YulIdentifier", + "src": "616:12:37" + }, + "nativeSrc": "616:20:37", + "nodeType": "YulFunctionCall", + "src": "616:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "607:5:37", + "nodeType": "YulIdentifier", + "src": "607:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "672:5:37", + "nodeType": "YulIdentifier", + "src": "672:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nativeSrc": "645:26:37", + "nodeType": "YulIdentifier", + "src": "645:26:37" + }, + "nativeSrc": "645:33:37", + "nodeType": "YulFunctionCall", + "src": "645:33:37" + }, + "nativeSrc": "645:33:37", + "nodeType": "YulExpressionStatement", + "src": "645:33:37" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nativeSrc": "545:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "575:6:37", + "nodeType": "YulTypedName", + "src": "575:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "583:3:37", + "nodeType": "YulTypedName", + "src": "583:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "591:5:37", + "nodeType": "YulTypedName", + "src": "591:5:37", + "type": "" + } + ], + "src": "545:139:37" + }, + { + "body": { + "nativeSrc": "735:81:37", + "nodeType": "YulBlock", + "src": "735:81:37", + "statements": [ + { + "nativeSrc": "745:65:37", + "nodeType": "YulAssignment", + "src": "745:65:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "760:5:37", + "nodeType": "YulIdentifier", + "src": "760:5:37" + }, + { + "kind": "number", + "nativeSrc": "767:42:37", + "nodeType": "YulLiteral", + "src": "767:42:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "756:3:37", + "nodeType": "YulIdentifier", + "src": "756:3:37" + }, + "nativeSrc": "756:54:37", + "nodeType": "YulFunctionCall", + "src": "756:54:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "745:7:37", + "nodeType": "YulIdentifier", + "src": "745:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "690:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "717:5:37", + "nodeType": "YulTypedName", + "src": "717:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "727:7:37", + "nodeType": "YulTypedName", + "src": "727:7:37", + "type": "" + } + ], + "src": "690:126:37" + }, + { + "body": { + "nativeSrc": "867:51:37", + "nodeType": "YulBlock", + "src": "867:51:37", + "statements": [ + { + "nativeSrc": "877:35:37", + "nodeType": "YulAssignment", + "src": "877:35:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "906:5:37", + "nodeType": "YulIdentifier", + "src": "906:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "888:17:37", + "nodeType": "YulIdentifier", + "src": "888:17:37" + }, + "nativeSrc": "888:24:37", + "nodeType": "YulFunctionCall", + "src": "888:24:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "877:7:37", + "nodeType": "YulIdentifier", + "src": "877:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "822:96:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "849:5:37", + "nodeType": "YulTypedName", + "src": "849:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "859:7:37", + "nodeType": "YulTypedName", + "src": "859:7:37", + "type": "" + } + ], + "src": "822:96:37" + }, + { + "body": { + "nativeSrc": "967:79:37", + "nodeType": "YulBlock", + "src": "967:79:37", + "statements": [ + { + "body": { + "nativeSrc": "1024:16:37", + "nodeType": "YulBlock", + "src": "1024:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1033:1:37", + "nodeType": "YulLiteral", + "src": "1033:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1036:1:37", + "nodeType": "YulLiteral", + "src": "1036:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1026:6:37", + "nodeType": "YulIdentifier", + "src": "1026:6:37" + }, + "nativeSrc": "1026:12:37", + "nodeType": "YulFunctionCall", + "src": "1026:12:37" + }, + "nativeSrc": "1026:12:37", + "nodeType": "YulExpressionStatement", + "src": "1026:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "990:5:37", + "nodeType": "YulIdentifier", + "src": "990:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1015:5:37", + "nodeType": "YulIdentifier", + "src": "1015:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "997:17:37", + "nodeType": "YulIdentifier", + "src": "997:17:37" + }, + "nativeSrc": "997:24:37", + "nodeType": "YulFunctionCall", + "src": "997:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "987:2:37", + "nodeType": "YulIdentifier", + "src": "987:2:37" + }, + "nativeSrc": "987:35:37", + "nodeType": "YulFunctionCall", + "src": "987:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "980:6:37", + "nodeType": "YulIdentifier", + "src": "980:6:37" + }, + "nativeSrc": "980:43:37", + "nodeType": "YulFunctionCall", + "src": "980:43:37" + }, + "nativeSrc": "977:63:37", + "nodeType": "YulIf", + "src": "977:63:37" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "924:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "960:5:37", + "nodeType": "YulTypedName", + "src": "960:5:37", + "type": "" + } + ], + "src": "924:122:37" + }, + { + "body": { + "nativeSrc": "1104:87:37", + "nodeType": "YulBlock", + "src": "1104:87:37", + "statements": [ + { + "nativeSrc": "1114:29:37", + "nodeType": "YulAssignment", + "src": "1114:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1136:6:37", + "nodeType": "YulIdentifier", + "src": "1136:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1123:12:37", + "nodeType": "YulIdentifier", + "src": "1123:12:37" + }, + "nativeSrc": "1123:20:37", + "nodeType": "YulFunctionCall", + "src": "1123:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1114:5:37", + "nodeType": "YulIdentifier", + "src": "1114:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1179:5:37", + "nodeType": "YulIdentifier", + "src": "1179:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "1152:26:37", + "nodeType": "YulIdentifier", + "src": "1152:26:37" + }, + "nativeSrc": "1152:33:37", + "nodeType": "YulFunctionCall", + "src": "1152:33:37" + }, + "nativeSrc": "1152:33:37", + "nodeType": "YulExpressionStatement", + "src": "1152:33:37" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "1052:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1082:6:37", + "nodeType": "YulTypedName", + "src": "1082:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1090:3:37", + "nodeType": "YulTypedName", + "src": "1090:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1098:5:37", + "nodeType": "YulTypedName", + "src": "1098:5:37", + "type": "" + } + ], + "src": "1052:139:37" + }, + { + "body": { + "nativeSrc": "1242:32:37", + "nodeType": "YulBlock", + "src": "1242:32:37", + "statements": [ + { + "nativeSrc": "1252:16:37", + "nodeType": "YulAssignment", + "src": "1252:16:37", + "value": { + "name": "value", + "nativeSrc": "1263:5:37", + "nodeType": "YulIdentifier", + "src": "1263:5:37" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1252:7:37", + "nodeType": "YulIdentifier", + "src": "1252:7:37" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "1197:77:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1224:5:37", + "nodeType": "YulTypedName", + "src": "1224:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1234:7:37", + "nodeType": "YulTypedName", + "src": "1234:7:37", + "type": "" + } + ], + "src": "1197:77:37" + }, + { + "body": { + "nativeSrc": "1323:79:37", + "nodeType": "YulBlock", + "src": "1323:79:37", + "statements": [ + { + "body": { + "nativeSrc": "1380:16:37", + "nodeType": "YulBlock", + "src": "1380:16:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1389:1:37", + "nodeType": "YulLiteral", + "src": "1389:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1392:1:37", + "nodeType": "YulLiteral", + "src": "1392:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1382:6:37", + "nodeType": "YulIdentifier", + "src": "1382:6:37" + }, + "nativeSrc": "1382:12:37", + "nodeType": "YulFunctionCall", + "src": "1382:12:37" + }, + "nativeSrc": "1382:12:37", + "nodeType": "YulExpressionStatement", + "src": "1382:12:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1346:5:37", + "nodeType": "YulIdentifier", + "src": "1346:5:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1371:5:37", + "nodeType": "YulIdentifier", + "src": "1371:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1353:17:37", + "nodeType": "YulIdentifier", + "src": "1353:17:37" + }, + "nativeSrc": "1353:24:37", + "nodeType": "YulFunctionCall", + "src": "1353:24:37" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1343:2:37", + "nodeType": "YulIdentifier", + "src": "1343:2:37" + }, + "nativeSrc": "1343:35:37", + "nodeType": "YulFunctionCall", + "src": "1343:35:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1336:6:37", + "nodeType": "YulIdentifier", + "src": "1336:6:37" + }, + "nativeSrc": "1336:43:37", + "nodeType": "YulFunctionCall", + "src": "1336:43:37" + }, + "nativeSrc": "1333:63:37", + "nodeType": "YulIf", + "src": "1333:63:37" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "1280:122:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1316:5:37", + "nodeType": "YulTypedName", + "src": "1316:5:37", + "type": "" + } + ], + "src": "1280:122:37" + }, + { + "body": { + "nativeSrc": "1460:87:37", + "nodeType": "YulBlock", + "src": "1460:87:37", + "statements": [ + { + "nativeSrc": "1470:29:37", + "nodeType": "YulAssignment", + "src": "1470:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1492:6:37", + "nodeType": "YulIdentifier", + "src": "1492:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1479:12:37", + "nodeType": "YulIdentifier", + "src": "1479:12:37" + }, + "nativeSrc": "1479:20:37", + "nodeType": "YulFunctionCall", + "src": "1479:20:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1470:5:37", + "nodeType": "YulIdentifier", + "src": "1470:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1535:5:37", + "nodeType": "YulIdentifier", + "src": "1535:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "1508:26:37", + "nodeType": "YulIdentifier", + "src": "1508:26:37" + }, + "nativeSrc": "1508:33:37", + "nodeType": "YulFunctionCall", + "src": "1508:33:37" + }, + "nativeSrc": "1508:33:37", + "nodeType": "YulExpressionStatement", + "src": "1508:33:37" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "1408:139:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1438:6:37", + "nodeType": "YulTypedName", + "src": "1438:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1446:3:37", + "nodeType": "YulTypedName", + "src": "1446:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1454:5:37", + "nodeType": "YulTypedName", + "src": "1454:5:37", + "type": "" + } + ], + "src": "1408:139:37" + }, + { + "body": { + "nativeSrc": "1653:519:37", + "nodeType": "YulBlock", + "src": "1653:519:37", + "statements": [ + { + "body": { + "nativeSrc": "1699:83:37", + "nodeType": "YulBlock", + "src": "1699:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1701:77:37", + "nodeType": "YulIdentifier", + "src": "1701:77:37" + }, + "nativeSrc": "1701:79:37", + "nodeType": "YulFunctionCall", + "src": "1701:79:37" + }, + "nativeSrc": "1701:79:37", + "nodeType": "YulExpressionStatement", + "src": "1701:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1674:7:37", + "nodeType": "YulIdentifier", + "src": "1674:7:37" + }, + { + "name": "headStart", + "nativeSrc": "1683:9:37", + "nodeType": "YulIdentifier", + "src": "1683:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1670:3:37", + "nodeType": "YulIdentifier", + "src": "1670:3:37" + }, + "nativeSrc": "1670:23:37", + "nodeType": "YulFunctionCall", + "src": "1670:23:37" + }, + { + "kind": "number", + "nativeSrc": "1695:2:37", + "nodeType": "YulLiteral", + "src": "1695:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1666:3:37", + "nodeType": "YulIdentifier", + "src": "1666:3:37" + }, + "nativeSrc": "1666:32:37", + "nodeType": "YulFunctionCall", + "src": "1666:32:37" + }, + "nativeSrc": "1663:119:37", + "nodeType": "YulIf", + "src": "1663:119:37" + }, + { + "nativeSrc": "1792:117:37", + "nodeType": "YulBlock", + "src": "1792:117:37", + "statements": [ + { + "nativeSrc": "1807:15:37", + "nodeType": "YulVariableDeclaration", + "src": "1807:15:37", + "value": { + "kind": "number", + "nativeSrc": "1821:1:37", + "nodeType": "YulLiteral", + "src": "1821:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1811:6:37", + "nodeType": "YulTypedName", + "src": "1811:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1836:63:37", + "nodeType": "YulAssignment", + "src": "1836:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1871:9:37", + "nodeType": "YulIdentifier", + "src": "1871:9:37" + }, + { + "name": "offset", + "nativeSrc": "1882:6:37", + "nodeType": "YulIdentifier", + "src": "1882:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1867:3:37", + "nodeType": "YulIdentifier", + "src": "1867:3:37" + }, + "nativeSrc": "1867:22:37", + "nodeType": "YulFunctionCall", + "src": "1867:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "1891:7:37", + "nodeType": "YulIdentifier", + "src": "1891:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "1846:20:37", + "nodeType": "YulIdentifier", + "src": "1846:20:37" + }, + "nativeSrc": "1846:53:37", + "nodeType": "YulFunctionCall", + "src": "1846:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1836:6:37", + "nodeType": "YulIdentifier", + "src": "1836:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "1919:118:37", + "nodeType": "YulBlock", + "src": "1919:118:37", + "statements": [ + { + "nativeSrc": "1934:16:37", + "nodeType": "YulVariableDeclaration", + "src": "1934:16:37", + "value": { + "kind": "number", + "nativeSrc": "1948:2:37", + "nodeType": "YulLiteral", + "src": "1948:2:37", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1938:6:37", + "nodeType": "YulTypedName", + "src": "1938:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "1964:63:37", + "nodeType": "YulAssignment", + "src": "1964:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1999:9:37", + "nodeType": "YulIdentifier", + "src": "1999:9:37" + }, + { + "name": "offset", + "nativeSrc": "2010:6:37", + "nodeType": "YulIdentifier", + "src": "2010:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1995:3:37", + "nodeType": "YulIdentifier", + "src": "1995:3:37" + }, + "nativeSrc": "1995:22:37", + "nodeType": "YulFunctionCall", + "src": "1995:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "2019:7:37", + "nodeType": "YulIdentifier", + "src": "2019:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "1974:20:37", + "nodeType": "YulIdentifier", + "src": "1974:20:37" + }, + "nativeSrc": "1974:53:37", + "nodeType": "YulFunctionCall", + "src": "1974:53:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1964:6:37", + "nodeType": "YulIdentifier", + "src": "1964:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "2047:118:37", + "nodeType": "YulBlock", + "src": "2047:118:37", + "statements": [ + { + "nativeSrc": "2062:16:37", + "nodeType": "YulVariableDeclaration", + "src": "2062:16:37", + "value": { + "kind": "number", + "nativeSrc": "2076:2:37", + "nodeType": "YulLiteral", + "src": "2076:2:37", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2066:6:37", + "nodeType": "YulTypedName", + "src": "2066:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "2092:63:37", + "nodeType": "YulAssignment", + "src": "2092:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2127:9:37", + "nodeType": "YulIdentifier", + "src": "2127:9:37" + }, + { + "name": "offset", + "nativeSrc": "2138:6:37", + "nodeType": "YulIdentifier", + "src": "2138:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2123:3:37", + "nodeType": "YulIdentifier", + "src": "2123:3:37" + }, + "nativeSrc": "2123:22:37", + "nodeType": "YulFunctionCall", + "src": "2123:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "2147:7:37", + "nodeType": "YulIdentifier", + "src": "2147:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "2102:20:37", + "nodeType": "YulIdentifier", + "src": "2102:20:37" + }, + "nativeSrc": "2102:53:37", + "nodeType": "YulFunctionCall", + "src": "2102:53:37" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "2092:6:37", + "nodeType": "YulIdentifier", + "src": "2092:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_addresst_uint256", + "nativeSrc": "1553:619:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1607:9:37", + "nodeType": "YulTypedName", + "src": "1607:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1618:7:37", + "nodeType": "YulTypedName", + "src": "1618:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1630:6:37", + "nodeType": "YulTypedName", + "src": "1630:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1638:6:37", + "nodeType": "YulTypedName", + "src": "1638:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "1646:6:37", + "nodeType": "YulTypedName", + "src": "1646:6:37", + "type": "" + } + ], + "src": "1553:619:37" + }, + { + "body": { + "nativeSrc": "2243:53:37", + "nodeType": "YulBlock", + "src": "2243:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2260:3:37", + "nodeType": "YulIdentifier", + "src": "2260:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2283:5:37", + "nodeType": "YulIdentifier", + "src": "2283:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "2265:17:37", + "nodeType": "YulIdentifier", + "src": "2265:17:37" + }, + "nativeSrc": "2265:24:37", + "nodeType": "YulFunctionCall", + "src": "2265:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2253:6:37", + "nodeType": "YulIdentifier", + "src": "2253:6:37" + }, + "nativeSrc": "2253:37:37", + "nodeType": "YulFunctionCall", + "src": "2253:37:37" + }, + "nativeSrc": "2253:37:37", + "nodeType": "YulExpressionStatement", + "src": "2253:37:37" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "2178:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2231:5:37", + "nodeType": "YulTypedName", + "src": "2231:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2238:3:37", + "nodeType": "YulTypedName", + "src": "2238:3:37", + "type": "" + } + ], + "src": "2178:118:37" + }, + { + "body": { + "nativeSrc": "2400:124:37", + "nodeType": "YulBlock", + "src": "2400:124:37", + "statements": [ + { + "nativeSrc": "2410:26:37", + "nodeType": "YulAssignment", + "src": "2410:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2422:9:37", + "nodeType": "YulIdentifier", + "src": "2422:9:37" + }, + { + "kind": "number", + "nativeSrc": "2433:2:37", + "nodeType": "YulLiteral", + "src": "2433:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2418:3:37", + "nodeType": "YulIdentifier", + "src": "2418:3:37" + }, + "nativeSrc": "2418:18:37", + "nodeType": "YulFunctionCall", + "src": "2418:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2410:4:37", + "nodeType": "YulIdentifier", + "src": "2410:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2490:6:37", + "nodeType": "YulIdentifier", + "src": "2490:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2503:9:37", + "nodeType": "YulIdentifier", + "src": "2503:9:37" + }, + { + "kind": "number", + "nativeSrc": "2514:1:37", + "nodeType": "YulLiteral", + "src": "2514:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2499:3:37", + "nodeType": "YulIdentifier", + "src": "2499:3:37" + }, + "nativeSrc": "2499:17:37", + "nodeType": "YulFunctionCall", + "src": "2499:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "2446:43:37", + "nodeType": "YulIdentifier", + "src": "2446:43:37" + }, + "nativeSrc": "2446:71:37", + "nodeType": "YulFunctionCall", + "src": "2446:71:37" + }, + "nativeSrc": "2446:71:37", + "nodeType": "YulExpressionStatement", + "src": "2446:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "2302:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2372:9:37", + "nodeType": "YulTypedName", + "src": "2372:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2384:6:37", + "nodeType": "YulTypedName", + "src": "2384:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2395:4:37", + "nodeType": "YulTypedName", + "src": "2395:4:37", + "type": "" + } + ], + "src": "2302:222:37" + }, + { + "body": { + "nativeSrc": "2619:28:37", + "nodeType": "YulBlock", + "src": "2619:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2636:1:37", + "nodeType": "YulLiteral", + "src": "2636:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2639:1:37", + "nodeType": "YulLiteral", + "src": "2639:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2629:6:37", + "nodeType": "YulIdentifier", + "src": "2629:6:37" + }, + "nativeSrc": "2629:12:37", + "nodeType": "YulFunctionCall", + "src": "2629:12:37" + }, + "nativeSrc": "2629:12:37", + "nodeType": "YulExpressionStatement", + "src": "2629:12:37" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2530:117:37", + "nodeType": "YulFunctionDefinition", + "src": "2530:117:37" + }, + { + "body": { + "nativeSrc": "2742:28:37", + "nodeType": "YulBlock", + "src": "2742:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2759:1:37", + "nodeType": "YulLiteral", + "src": "2759:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2762:1:37", + "nodeType": "YulLiteral", + "src": "2762:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2752:6:37", + "nodeType": "YulIdentifier", + "src": "2752:6:37" + }, + "nativeSrc": "2752:12:37", + "nodeType": "YulFunctionCall", + "src": "2752:12:37" + }, + "nativeSrc": "2752:12:37", + "nodeType": "YulExpressionStatement", + "src": "2752:12:37" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nativeSrc": "2653:117:37", + "nodeType": "YulFunctionDefinition", + "src": "2653:117:37" + }, + { + "body": { + "nativeSrc": "2865:28:37", + "nodeType": "YulBlock", + "src": "2865:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2882:1:37", + "nodeType": "YulLiteral", + "src": "2882:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2885:1:37", + "nodeType": "YulLiteral", + "src": "2885:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2875:6:37", + "nodeType": "YulIdentifier", + "src": "2875:6:37" + }, + "nativeSrc": "2875:12:37", + "nodeType": "YulFunctionCall", + "src": "2875:12:37" + }, + "nativeSrc": "2875:12:37", + "nodeType": "YulExpressionStatement", + "src": "2875:12:37" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "2776:117:37", + "nodeType": "YulFunctionDefinition", + "src": "2776:117:37" + }, + { + "body": { + "nativeSrc": "3006:478:37", + "nodeType": "YulBlock", + "src": "3006:478:37", + "statements": [ + { + "body": { + "nativeSrc": "3055:83:37", + "nodeType": "YulBlock", + "src": "3055:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "3057:77:37", + "nodeType": "YulIdentifier", + "src": "3057:77:37" + }, + "nativeSrc": "3057:79:37", + "nodeType": "YulFunctionCall", + "src": "3057:79:37" + }, + "nativeSrc": "3057:79:37", + "nodeType": "YulExpressionStatement", + "src": "3057:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3034:6:37", + "nodeType": "YulIdentifier", + "src": "3034:6:37" + }, + { + "kind": "number", + "nativeSrc": "3042:4:37", + "nodeType": "YulLiteral", + "src": "3042:4:37", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3030:3:37", + "nodeType": "YulIdentifier", + "src": "3030:3:37" + }, + "nativeSrc": "3030:17:37", + "nodeType": "YulFunctionCall", + "src": "3030:17:37" + }, + { + "name": "end", + "nativeSrc": "3049:3:37", + "nodeType": "YulIdentifier", + "src": "3049:3:37" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3026:3:37", + "nodeType": "YulIdentifier", + "src": "3026:3:37" + }, + "nativeSrc": "3026:27:37", + "nodeType": "YulFunctionCall", + "src": "3026:27:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3019:6:37", + "nodeType": "YulIdentifier", + "src": "3019:6:37" + }, + "nativeSrc": "3019:35:37", + "nodeType": "YulFunctionCall", + "src": "3019:35:37" + }, + "nativeSrc": "3016:122:37", + "nodeType": "YulIf", + "src": "3016:122:37" + }, + { + "nativeSrc": "3147:30:37", + "nodeType": "YulAssignment", + "src": "3147:30:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3170:6:37", + "nodeType": "YulIdentifier", + "src": "3170:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3157:12:37", + "nodeType": "YulIdentifier", + "src": "3157:12:37" + }, + "nativeSrc": "3157:20:37", + "nodeType": "YulFunctionCall", + "src": "3157:20:37" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3147:6:37", + "nodeType": "YulIdentifier", + "src": "3147:6:37" + } + ] + }, + { + "body": { + "nativeSrc": "3220:83:37", + "nodeType": "YulBlock", + "src": "3220:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nativeSrc": "3222:77:37", + "nodeType": "YulIdentifier", + "src": "3222:77:37" + }, + "nativeSrc": "3222:79:37", + "nodeType": "YulFunctionCall", + "src": "3222:79:37" + }, + "nativeSrc": "3222:79:37", + "nodeType": "YulExpressionStatement", + "src": "3222:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3192:6:37", + "nodeType": "YulIdentifier", + "src": "3192:6:37" + }, + { + "kind": "number", + "nativeSrc": "3200:18:37", + "nodeType": "YulLiteral", + "src": "3200:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3189:2:37", + "nodeType": "YulIdentifier", + "src": "3189:2:37" + }, + "nativeSrc": "3189:30:37", + "nodeType": "YulFunctionCall", + "src": "3189:30:37" + }, + "nativeSrc": "3186:117:37", + "nodeType": "YulIf", + "src": "3186:117:37" + }, + { + "nativeSrc": "3312:29:37", + "nodeType": "YulAssignment", + "src": "3312:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3328:6:37", + "nodeType": "YulIdentifier", + "src": "3328:6:37" + }, + { + "kind": "number", + "nativeSrc": "3336:4:37", + "nodeType": "YulLiteral", + "src": "3336:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3324:3:37", + "nodeType": "YulIdentifier", + "src": "3324:3:37" + }, + "nativeSrc": "3324:17:37", + "nodeType": "YulFunctionCall", + "src": "3324:17:37" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "3312:8:37", + "nodeType": "YulIdentifier", + "src": "3312:8:37" + } + ] + }, + { + "body": { + "nativeSrc": "3395:83:37", + "nodeType": "YulBlock", + "src": "3395:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "3397:77:37", + "nodeType": "YulIdentifier", + "src": "3397:77:37" + }, + "nativeSrc": "3397:79:37", + "nodeType": "YulFunctionCall", + "src": "3397:79:37" + }, + "nativeSrc": "3397:79:37", + "nodeType": "YulExpressionStatement", + "src": "3397:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nativeSrc": "3360:8:37", + "nodeType": "YulIdentifier", + "src": "3360:8:37" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3374:6:37", + "nodeType": "YulIdentifier", + "src": "3374:6:37" + }, + { + "kind": "number", + "nativeSrc": "3382:4:37", + "nodeType": "YulLiteral", + "src": "3382:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "3370:3:37", + "nodeType": "YulIdentifier", + "src": "3370:3:37" + }, + "nativeSrc": "3370:17:37", + "nodeType": "YulFunctionCall", + "src": "3370:17:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3356:3:37", + "nodeType": "YulIdentifier", + "src": "3356:3:37" + }, + "nativeSrc": "3356:32:37", + "nodeType": "YulFunctionCall", + "src": "3356:32:37" + }, + { + "name": "end", + "nativeSrc": "3390:3:37", + "nodeType": "YulIdentifier", + "src": "3390:3:37" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3353:2:37", + "nodeType": "YulIdentifier", + "src": "3353:2:37" + }, + "nativeSrc": "3353:41:37", + "nodeType": "YulFunctionCall", + "src": "3353:41:37" + }, + "nativeSrc": "3350:128:37", + "nodeType": "YulIf", + "src": "3350:128:37" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nativeSrc": "2916:568:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2973:6:37", + "nodeType": "YulTypedName", + "src": "2973:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2981:3:37", + "nodeType": "YulTypedName", + "src": "2981:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "2989:8:37", + "nodeType": "YulTypedName", + "src": "2989:8:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "2999:6:37", + "nodeType": "YulTypedName", + "src": "2999:6:37", + "type": "" + } + ], + "src": "2916:568:37" + }, + { + "body": { + "nativeSrc": "3626:478:37", + "nodeType": "YulBlock", + "src": "3626:478:37", + "statements": [ + { + "body": { + "nativeSrc": "3675:83:37", + "nodeType": "YulBlock", + "src": "3675:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "3677:77:37", + "nodeType": "YulIdentifier", + "src": "3677:77:37" + }, + "nativeSrc": "3677:79:37", + "nodeType": "YulFunctionCall", + "src": "3677:79:37" + }, + "nativeSrc": "3677:79:37", + "nodeType": "YulExpressionStatement", + "src": "3677:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3654:6:37", + "nodeType": "YulIdentifier", + "src": "3654:6:37" + }, + { + "kind": "number", + "nativeSrc": "3662:4:37", + "nodeType": "YulLiteral", + "src": "3662:4:37", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3650:3:37", + "nodeType": "YulIdentifier", + "src": "3650:3:37" + }, + "nativeSrc": "3650:17:37", + "nodeType": "YulFunctionCall", + "src": "3650:17:37" + }, + { + "name": "end", + "nativeSrc": "3669:3:37", + "nodeType": "YulIdentifier", + "src": "3669:3:37" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3646:3:37", + "nodeType": "YulIdentifier", + "src": "3646:3:37" + }, + "nativeSrc": "3646:27:37", + "nodeType": "YulFunctionCall", + "src": "3646:27:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3639:6:37", + "nodeType": "YulIdentifier", + "src": "3639:6:37" + }, + "nativeSrc": "3639:35:37", + "nodeType": "YulFunctionCall", + "src": "3639:35:37" + }, + "nativeSrc": "3636:122:37", + "nodeType": "YulIf", + "src": "3636:122:37" + }, + { + "nativeSrc": "3767:30:37", + "nodeType": "YulAssignment", + "src": "3767:30:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3790:6:37", + "nodeType": "YulIdentifier", + "src": "3790:6:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3777:12:37", + "nodeType": "YulIdentifier", + "src": "3777:12:37" + }, + "nativeSrc": "3777:20:37", + "nodeType": "YulFunctionCall", + "src": "3777:20:37" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3767:6:37", + "nodeType": "YulIdentifier", + "src": "3767:6:37" + } + ] + }, + { + "body": { + "nativeSrc": "3840:83:37", + "nodeType": "YulBlock", + "src": "3840:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nativeSrc": "3842:77:37", + "nodeType": "YulIdentifier", + "src": "3842:77:37" + }, + "nativeSrc": "3842:79:37", + "nodeType": "YulFunctionCall", + "src": "3842:79:37" + }, + "nativeSrc": "3842:79:37", + "nodeType": "YulExpressionStatement", + "src": "3842:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3812:6:37", + "nodeType": "YulIdentifier", + "src": "3812:6:37" + }, + { + "kind": "number", + "nativeSrc": "3820:18:37", + "nodeType": "YulLiteral", + "src": "3820:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3809:2:37", + "nodeType": "YulIdentifier", + "src": "3809:2:37" + }, + "nativeSrc": "3809:30:37", + "nodeType": "YulFunctionCall", + "src": "3809:30:37" + }, + "nativeSrc": "3806:117:37", + "nodeType": "YulIf", + "src": "3806:117:37" + }, + { + "nativeSrc": "3932:29:37", + "nodeType": "YulAssignment", + "src": "3932:29:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3948:6:37", + "nodeType": "YulIdentifier", + "src": "3948:6:37" + }, + { + "kind": "number", + "nativeSrc": "3956:4:37", + "nodeType": "YulLiteral", + "src": "3956:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3944:3:37", + "nodeType": "YulIdentifier", + "src": "3944:3:37" + }, + "nativeSrc": "3944:17:37", + "nodeType": "YulFunctionCall", + "src": "3944:17:37" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "3932:8:37", + "nodeType": "YulIdentifier", + "src": "3932:8:37" + } + ] + }, + { + "body": { + "nativeSrc": "4015:83:37", + "nodeType": "YulBlock", + "src": "4015:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "4017:77:37", + "nodeType": "YulIdentifier", + "src": "4017:77:37" + }, + "nativeSrc": "4017:79:37", + "nodeType": "YulFunctionCall", + "src": "4017:79:37" + }, + "nativeSrc": "4017:79:37", + "nodeType": "YulExpressionStatement", + "src": "4017:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nativeSrc": "3980:8:37", + "nodeType": "YulIdentifier", + "src": "3980:8:37" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3994:6:37", + "nodeType": "YulIdentifier", + "src": "3994:6:37" + }, + { + "kind": "number", + "nativeSrc": "4002:4:37", + "nodeType": "YulLiteral", + "src": "4002:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "3990:3:37", + "nodeType": "YulIdentifier", + "src": "3990:3:37" + }, + "nativeSrc": "3990:17:37", + "nodeType": "YulFunctionCall", + "src": "3990:17:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3976:3:37", + "nodeType": "YulIdentifier", + "src": "3976:3:37" + }, + "nativeSrc": "3976:32:37", + "nodeType": "YulFunctionCall", + "src": "3976:32:37" + }, + { + "name": "end", + "nativeSrc": "4010:3:37", + "nodeType": "YulIdentifier", + "src": "4010:3:37" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3973:2:37", + "nodeType": "YulIdentifier", + "src": "3973:2:37" + }, + "nativeSrc": "3973:41:37", + "nodeType": "YulFunctionCall", + "src": "3973:41:37" + }, + "nativeSrc": "3970:128:37", + "nodeType": "YulIf", + "src": "3970:128:37" + } + ] + }, + "name": "abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", + "nativeSrc": "3509:595:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3593:6:37", + "nodeType": "YulTypedName", + "src": "3593:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3601:3:37", + "nodeType": "YulTypedName", + "src": "3601:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "3609:8:37", + "nodeType": "YulTypedName", + "src": "3609:8:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3619:6:37", + "nodeType": "YulTypedName", + "src": "3619:6:37", + "type": "" + } + ], + "src": "3509:595:37" + }, + { + "body": { + "nativeSrc": "4307:936:37", + "nodeType": "YulBlock", + "src": "4307:936:37", + "statements": [ + { + "body": { + "nativeSrc": "4353:83:37", + "nodeType": "YulBlock", + "src": "4353:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4355:77:37", + "nodeType": "YulIdentifier", + "src": "4355:77:37" + }, + "nativeSrc": "4355:79:37", + "nodeType": "YulFunctionCall", + "src": "4355:79:37" + }, + "nativeSrc": "4355:79:37", + "nodeType": "YulExpressionStatement", + "src": "4355:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4328:7:37", + "nodeType": "YulIdentifier", + "src": "4328:7:37" + }, + { + "name": "headStart", + "nativeSrc": "4337:9:37", + "nodeType": "YulIdentifier", + "src": "4337:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4324:3:37", + "nodeType": "YulIdentifier", + "src": "4324:3:37" + }, + "nativeSrc": "4324:23:37", + "nodeType": "YulFunctionCall", + "src": "4324:23:37" + }, + { + "kind": "number", + "nativeSrc": "4349:2:37", + "nodeType": "YulLiteral", + "src": "4349:2:37", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4320:3:37", + "nodeType": "YulIdentifier", + "src": "4320:3:37" + }, + "nativeSrc": "4320:32:37", + "nodeType": "YulFunctionCall", + "src": "4320:32:37" + }, + "nativeSrc": "4317:119:37", + "nodeType": "YulIf", + "src": "4317:119:37" + }, + { + "nativeSrc": "4446:117:37", + "nodeType": "YulBlock", + "src": "4446:117:37", + "statements": [ + { + "nativeSrc": "4461:15:37", + "nodeType": "YulVariableDeclaration", + "src": "4461:15:37", + "value": { + "kind": "number", + "nativeSrc": "4475:1:37", + "nodeType": "YulLiteral", + "src": "4475:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4465:6:37", + "nodeType": "YulTypedName", + "src": "4465:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "4490:63:37", + "nodeType": "YulAssignment", + "src": "4490:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4525:9:37", + "nodeType": "YulIdentifier", + "src": "4525:9:37" + }, + { + "name": "offset", + "nativeSrc": "4536:6:37", + "nodeType": "YulIdentifier", + "src": "4536:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4521:3:37", + "nodeType": "YulIdentifier", + "src": "4521:3:37" + }, + "nativeSrc": "4521:22:37", + "nodeType": "YulFunctionCall", + "src": "4521:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4545:7:37", + "nodeType": "YulIdentifier", + "src": "4545:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "4500:20:37", + "nodeType": "YulIdentifier", + "src": "4500:20:37" + }, + "nativeSrc": "4500:53:37", + "nodeType": "YulFunctionCall", + "src": "4500:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4490:6:37", + "nodeType": "YulIdentifier", + "src": "4490:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "4573:313:37", + "nodeType": "YulBlock", + "src": "4573:313:37", + "statements": [ + { + "nativeSrc": "4588:46:37", + "nodeType": "YulVariableDeclaration", + "src": "4588:46:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4619:9:37", + "nodeType": "YulIdentifier", + "src": "4619:9:37" + }, + { + "kind": "number", + "nativeSrc": "4630:2:37", + "nodeType": "YulLiteral", + "src": "4630:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4615:3:37", + "nodeType": "YulIdentifier", + "src": "4615:3:37" + }, + "nativeSrc": "4615:18:37", + "nodeType": "YulFunctionCall", + "src": "4615:18:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4602:12:37", + "nodeType": "YulIdentifier", + "src": "4602:12:37" + }, + "nativeSrc": "4602:32:37", + "nodeType": "YulFunctionCall", + "src": "4602:32:37" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4592:6:37", + "nodeType": "YulTypedName", + "src": "4592:6:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4681:83:37", + "nodeType": "YulBlock", + "src": "4681:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "4683:77:37", + "nodeType": "YulIdentifier", + "src": "4683:77:37" + }, + "nativeSrc": "4683:79:37", + "nodeType": "YulFunctionCall", + "src": "4683:79:37" + }, + "nativeSrc": "4683:79:37", + "nodeType": "YulExpressionStatement", + "src": "4683:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4653:6:37", + "nodeType": "YulIdentifier", + "src": "4653:6:37" + }, + { + "kind": "number", + "nativeSrc": "4661:18:37", + "nodeType": "YulLiteral", + "src": "4661:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4650:2:37", + "nodeType": "YulIdentifier", + "src": "4650:2:37" + }, + "nativeSrc": "4650:30:37", + "nodeType": "YulFunctionCall", + "src": "4650:30:37" + }, + "nativeSrc": "4647:117:37", + "nodeType": "YulIf", + "src": "4647:117:37" + }, + { + "nativeSrc": "4778:98:37", + "nodeType": "YulAssignment", + "src": "4778:98:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4848:9:37", + "nodeType": "YulIdentifier", + "src": "4848:9:37" + }, + { + "name": "offset", + "nativeSrc": "4859:6:37", + "nodeType": "YulIdentifier", + "src": "4859:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4844:3:37", + "nodeType": "YulIdentifier", + "src": "4844:3:37" + }, + "nativeSrc": "4844:22:37", + "nodeType": "YulFunctionCall", + "src": "4844:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "4868:7:37", + "nodeType": "YulIdentifier", + "src": "4868:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nativeSrc": "4796:47:37", + "nodeType": "YulIdentifier", + "src": "4796:47:37" + }, + "nativeSrc": "4796:80:37", + "nodeType": "YulFunctionCall", + "src": "4796:80:37" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4778:6:37", + "nodeType": "YulIdentifier", + "src": "4778:6:37" + }, + { + "name": "value2", + "nativeSrc": "4786:6:37", + "nodeType": "YulIdentifier", + "src": "4786:6:37" + } + ] + } + ] + }, + { + "nativeSrc": "4896:340:37", + "nodeType": "YulBlock", + "src": "4896:340:37", + "statements": [ + { + "nativeSrc": "4911:46:37", + "nodeType": "YulVariableDeclaration", + "src": "4911:46:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4942:9:37", + "nodeType": "YulIdentifier", + "src": "4942:9:37" + }, + { + "kind": "number", + "nativeSrc": "4953:2:37", + "nodeType": "YulLiteral", + "src": "4953:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4938:3:37", + "nodeType": "YulIdentifier", + "src": "4938:3:37" + }, + "nativeSrc": "4938:18:37", + "nodeType": "YulFunctionCall", + "src": "4938:18:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4925:12:37", + "nodeType": "YulIdentifier", + "src": "4925:12:37" + }, + "nativeSrc": "4925:32:37", + "nodeType": "YulFunctionCall", + "src": "4925:32:37" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4915:6:37", + "nodeType": "YulTypedName", + "src": "4915:6:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5004:83:37", + "nodeType": "YulBlock", + "src": "5004:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "5006:77:37", + "nodeType": "YulIdentifier", + "src": "5006:77:37" + }, + "nativeSrc": "5006:79:37", + "nodeType": "YulFunctionCall", + "src": "5006:79:37" + }, + "nativeSrc": "5006:79:37", + "nodeType": "YulExpressionStatement", + "src": "5006:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4976:6:37", + "nodeType": "YulIdentifier", + "src": "4976:6:37" + }, + { + "kind": "number", + "nativeSrc": "4984:18:37", + "nodeType": "YulLiteral", + "src": "4984:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4973:2:37", + "nodeType": "YulIdentifier", + "src": "4973:2:37" + }, + "nativeSrc": "4973:30:37", + "nodeType": "YulFunctionCall", + "src": "4973:30:37" + }, + "nativeSrc": "4970:117:37", + "nodeType": "YulIf", + "src": "4970:117:37" + }, + { + "nativeSrc": "5101:125:37", + "nodeType": "YulAssignment", + "src": "5101:125:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5198:9:37", + "nodeType": "YulIdentifier", + "src": "5198:9:37" + }, + { + "name": "offset", + "nativeSrc": "5209:6:37", + "nodeType": "YulIdentifier", + "src": "5209:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5194:3:37", + "nodeType": "YulIdentifier", + "src": "5194:3:37" + }, + "nativeSrc": "5194:22:37", + "nodeType": "YulFunctionCall", + "src": "5194:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "5218:7:37", + "nodeType": "YulIdentifier", + "src": "5218:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", + "nativeSrc": "5119:74:37", + "nodeType": "YulIdentifier", + "src": "5119:74:37" + }, + "nativeSrc": "5119:107:37", + "nodeType": "YulFunctionCall", + "src": "5119:107:37" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "5101:6:37", + "nodeType": "YulIdentifier", + "src": "5101:6:37" + }, + { + "name": "value4", + "nativeSrc": "5109:6:37", + "nodeType": "YulIdentifier", + "src": "5109:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_array$_t_address_$dyn_calldata_ptrt_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", + "nativeSrc": "4110:1133:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4245:9:37", + "nodeType": "YulTypedName", + "src": "4245:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4256:7:37", + "nodeType": "YulTypedName", + "src": "4256:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4268:6:37", + "nodeType": "YulTypedName", + "src": "4268:6:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4276:6:37", + "nodeType": "YulTypedName", + "src": "4276:6:37", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4284:6:37", + "nodeType": "YulTypedName", + "src": "4284:6:37", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "4292:6:37", + "nodeType": "YulTypedName", + "src": "4292:6:37", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "4300:6:37", + "nodeType": "YulTypedName", + "src": "4300:6:37", + "type": "" + } + ], + "src": "4110:1133:37" + }, + { + "body": { + "nativeSrc": "5281:28:37", + "nodeType": "YulBlock", + "src": "5281:28:37", + "statements": [ + { + "nativeSrc": "5291:12:37", + "nodeType": "YulAssignment", + "src": "5291:12:37", + "value": { + "name": "value", + "nativeSrc": "5298:5:37", + "nodeType": "YulIdentifier", + "src": "5298:5:37" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "5291:3:37", + "nodeType": "YulIdentifier", + "src": "5291:3:37" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "5249:60:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5267:5:37", + "nodeType": "YulTypedName", + "src": "5267:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "5277:3:37", + "nodeType": "YulTypedName", + "src": "5277:3:37", + "type": "" + } + ], + "src": "5249:60:37" + }, + { + "body": { + "nativeSrc": "5375:82:37", + "nodeType": "YulBlock", + "src": "5375:82:37", + "statements": [ + { + "nativeSrc": "5385:66:37", + "nodeType": "YulAssignment", + "src": "5385:66:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5443:5:37", + "nodeType": "YulIdentifier", + "src": "5443:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "5425:17:37", + "nodeType": "YulIdentifier", + "src": "5425:17:37" + }, + "nativeSrc": "5425:24:37", + "nodeType": "YulFunctionCall", + "src": "5425:24:37" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "5416:8:37", + "nodeType": "YulIdentifier", + "src": "5416:8:37" + }, + "nativeSrc": "5416:34:37", + "nodeType": "YulFunctionCall", + "src": "5416:34:37" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "5398:17:37", + "nodeType": "YulIdentifier", + "src": "5398:17:37" + }, + "nativeSrc": "5398:53:37", + "nodeType": "YulFunctionCall", + "src": "5398:53:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "5385:9:37", + "nodeType": "YulIdentifier", + "src": "5385:9:37" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "5315:142:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5355:5:37", + "nodeType": "YulTypedName", + "src": "5355:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "5365:9:37", + "nodeType": "YulTypedName", + "src": "5365:9:37", + "type": "" + } + ], + "src": "5315:142:37" + }, + { + "body": { + "nativeSrc": "5523:66:37", + "nodeType": "YulBlock", + "src": "5523:66:37", + "statements": [ + { + "nativeSrc": "5533:50:37", + "nodeType": "YulAssignment", + "src": "5533:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5577:5:37", + "nodeType": "YulIdentifier", + "src": "5577:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "5546:30:37", + "nodeType": "YulIdentifier", + "src": "5546:30:37" + }, + "nativeSrc": "5546:37:37", + "nodeType": "YulFunctionCall", + "src": "5546:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "5533:9:37", + "nodeType": "YulIdentifier", + "src": "5533:9:37" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "5463:126:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5503:5:37", + "nodeType": "YulTypedName", + "src": "5503:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "5513:9:37", + "nodeType": "YulTypedName", + "src": "5513:9:37", + "type": "" + } + ], + "src": "5463:126:37" + }, + { + "body": { + "nativeSrc": "5676:66:37", + "nodeType": "YulBlock", + "src": "5676:66:37", + "statements": [ + { + "nativeSrc": "5686:50:37", + "nodeType": "YulAssignment", + "src": "5686:50:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5730:5:37", + "nodeType": "YulIdentifier", + "src": "5730:5:37" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "5699:30:37", + "nodeType": "YulIdentifier", + "src": "5699:30:37" + }, + "nativeSrc": "5699:37:37", + "nodeType": "YulFunctionCall", + "src": "5699:37:37" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "5686:9:37", + "nodeType": "YulIdentifier", + "src": "5686:9:37" + } + ] + } + ] + }, + "name": "convert_t_contract$_ISciRegistry_$7088_to_t_address", + "nativeSrc": "5595:147:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5656:5:37", + "nodeType": "YulTypedName", + "src": "5656:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "5666:9:37", + "nodeType": "YulTypedName", + "src": "5666:9:37", + "type": "" + } + ], + "src": "5595:147:37" + }, + { + "body": { + "nativeSrc": "5834:87:37", + "nodeType": "YulBlock", + "src": "5834:87:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5851:3:37", + "nodeType": "YulIdentifier", + "src": "5851:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5908:5:37", + "nodeType": "YulIdentifier", + "src": "5908:5:37" + } + ], + "functionName": { + "name": "convert_t_contract$_ISciRegistry_$7088_to_t_address", + "nativeSrc": "5856:51:37", + "nodeType": "YulIdentifier", + "src": "5856:51:37" + }, + "nativeSrc": "5856:58:37", + "nodeType": "YulFunctionCall", + "src": "5856:58:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5844:6:37", + "nodeType": "YulIdentifier", + "src": "5844:6:37" + }, + "nativeSrc": "5844:71:37", + "nodeType": "YulFunctionCall", + "src": "5844:71:37" + }, + "nativeSrc": "5844:71:37", + "nodeType": "YulExpressionStatement", + "src": "5844:71:37" + } + ] + }, + "name": "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack", + "nativeSrc": "5748:173:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5822:5:37", + "nodeType": "YulTypedName", + "src": "5822:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5829:3:37", + "nodeType": "YulTypedName", + "src": "5829:3:37", + "type": "" + } + ], + "src": "5748:173:37" + }, + { + "body": { + "nativeSrc": "6046:145:37", + "nodeType": "YulBlock", + "src": "6046:145:37", + "statements": [ + { + "nativeSrc": "6056:26:37", + "nodeType": "YulAssignment", + "src": "6056:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6068:9:37", + "nodeType": "YulIdentifier", + "src": "6068:9:37" + }, + { + "kind": "number", + "nativeSrc": "6079:2:37", + "nodeType": "YulLiteral", + "src": "6079:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6064:3:37", + "nodeType": "YulIdentifier", + "src": "6064:3:37" + }, + "nativeSrc": "6064:18:37", + "nodeType": "YulFunctionCall", + "src": "6064:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6056:4:37", + "nodeType": "YulIdentifier", + "src": "6056:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6157:6:37", + "nodeType": "YulIdentifier", + "src": "6157:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6170:9:37", + "nodeType": "YulIdentifier", + "src": "6170:9:37" + }, + { + "kind": "number", + "nativeSrc": "6181:1:37", + "nodeType": "YulLiteral", + "src": "6181:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6166:3:37", + "nodeType": "YulIdentifier", + "src": "6166:3:37" + }, + "nativeSrc": "6166:17:37", + "nodeType": "YulFunctionCall", + "src": "6166:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack", + "nativeSrc": "6092:64:37", + "nodeType": "YulIdentifier", + "src": "6092:64:37" + }, + "nativeSrc": "6092:92:37", + "nodeType": "YulFunctionCall", + "src": "6092:92:37" + }, + "nativeSrc": "6092:92:37", + "nodeType": "YulExpressionStatement", + "src": "6092:92:37" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed", + "nativeSrc": "5927:264:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6018:9:37", + "nodeType": "YulTypedName", + "src": "6018:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6030:6:37", + "nodeType": "YulTypedName", + "src": "6030:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6041:4:37", + "nodeType": "YulTypedName", + "src": "6041:4:37", + "type": "" + } + ], + "src": "5927:264:37" + }, + { + "body": { + "nativeSrc": "6225:152:37", + "nodeType": "YulBlock", + "src": "6225:152:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6242:1:37", + "nodeType": "YulLiteral", + "src": "6242:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6245:77:37", + "nodeType": "YulLiteral", + "src": "6245:77:37", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6235:6:37", + "nodeType": "YulIdentifier", + "src": "6235:6:37" + }, + "nativeSrc": "6235:88:37", + "nodeType": "YulFunctionCall", + "src": "6235:88:37" + }, + "nativeSrc": "6235:88:37", + "nodeType": "YulExpressionStatement", + "src": "6235:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6339:1:37", + "nodeType": "YulLiteral", + "src": "6339:1:37", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6342:4:37", + "nodeType": "YulLiteral", + "src": "6342:4:37", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6332:6:37", + "nodeType": "YulIdentifier", + "src": "6332:6:37" + }, + "nativeSrc": "6332:15:37", + "nodeType": "YulFunctionCall", + "src": "6332:15:37" + }, + "nativeSrc": "6332:15:37", + "nodeType": "YulExpressionStatement", + "src": "6332:15:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6363:1:37", + "nodeType": "YulLiteral", + "src": "6363:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6366:4:37", + "nodeType": "YulLiteral", + "src": "6366:4:37", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6356:6:37", + "nodeType": "YulIdentifier", + "src": "6356:6:37" + }, + "nativeSrc": "6356:15:37", + "nodeType": "YulFunctionCall", + "src": "6356:15:37" + }, + "nativeSrc": "6356:15:37", + "nodeType": "YulExpressionStatement", + "src": "6356:15:37" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "6197:180:37", + "nodeType": "YulFunctionDefinition", + "src": "6197:180:37" + }, + { + "body": { + "nativeSrc": "6472:28:37", + "nodeType": "YulBlock", + "src": "6472:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6489:1:37", + "nodeType": "YulLiteral", + "src": "6489:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6492:1:37", + "nodeType": "YulLiteral", + "src": "6492:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6482:6:37", + "nodeType": "YulIdentifier", + "src": "6482:6:37" + }, + "nativeSrc": "6482:12:37", + "nodeType": "YulFunctionCall", + "src": "6482:12:37" + }, + "nativeSrc": "6482:12:37", + "nodeType": "YulExpressionStatement", + "src": "6482:12:37" + } + ] + }, + "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", + "nativeSrc": "6383:117:37", + "nodeType": "YulFunctionDefinition", + "src": "6383:117:37" + }, + { + "body": { + "nativeSrc": "6595:28:37", + "nodeType": "YulBlock", + "src": "6595:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6612:1:37", + "nodeType": "YulLiteral", + "src": "6612:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6615:1:37", + "nodeType": "YulLiteral", + "src": "6615:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6605:6:37", + "nodeType": "YulIdentifier", + "src": "6605:6:37" + }, + "nativeSrc": "6605:12:37", + "nodeType": "YulFunctionCall", + "src": "6605:12:37" + }, + "nativeSrc": "6605:12:37", + "nodeType": "YulExpressionStatement", + "src": "6605:12:37" + } + ] + }, + "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", + "nativeSrc": "6506:117:37", + "nodeType": "YulFunctionDefinition", + "src": "6506:117:37" + }, + { + "body": { + "nativeSrc": "6718:28:37", + "nodeType": "YulBlock", + "src": "6718:28:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6735:1:37", + "nodeType": "YulLiteral", + "src": "6735:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6738:1:37", + "nodeType": "YulLiteral", + "src": "6738:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6728:6:37", + "nodeType": "YulIdentifier", + "src": "6728:6:37" + }, + "nativeSrc": "6728:12:37", + "nodeType": "YulFunctionCall", + "src": "6728:12:37" + }, + "nativeSrc": "6728:12:37", + "nodeType": "YulExpressionStatement", + "src": "6728:12:37" + } + ] + }, + "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", + "nativeSrc": "6629:117:37", + "nodeType": "YulFunctionDefinition", + "src": "6629:117:37" + }, + { + "body": { + "nativeSrc": "6858:634:37", + "nodeType": "YulBlock", + "src": "6858:634:37", + "statements": [ + { + "nativeSrc": "6868:51:37", + "nodeType": "YulVariableDeclaration", + "src": "6868:51:37", + "value": { + "arguments": [ + { + "name": "ptr_to_tail", + "nativeSrc": "6907:11:37", + "nodeType": "YulIdentifier", + "src": "6907:11:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6894:12:37", + "nodeType": "YulIdentifier", + "src": "6894:12:37" + }, + "nativeSrc": "6894:25:37", + "nodeType": "YulFunctionCall", + "src": "6894:25:37" + }, + "variables": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "6872:18:37", + "nodeType": "YulTypedName", + "src": "6872:18:37", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7013:83:37", + "nodeType": "YulBlock", + "src": "7013:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", + "nativeSrc": "7015:77:37", + "nodeType": "YulIdentifier", + "src": "7015:77:37" + }, + "nativeSrc": "7015:79:37", + "nodeType": "YulFunctionCall", + "src": "7015:79:37" + }, + "nativeSrc": "7015:79:37", + "nodeType": "YulExpressionStatement", + "src": "7015:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "6942:18:37", + "nodeType": "YulIdentifier", + "src": "6942:18:37" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "6970:12:37", + "nodeType": "YulIdentifier", + "src": "6970:12:37" + }, + "nativeSrc": "6970:14:37", + "nodeType": "YulFunctionCall", + "src": "6970:14:37" + }, + { + "name": "base_ref", + "nativeSrc": "6986:8:37", + "nodeType": "YulIdentifier", + "src": "6986:8:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6966:3:37", + "nodeType": "YulIdentifier", + "src": "6966:3:37" + }, + "nativeSrc": "6966:29:37", + "nodeType": "YulFunctionCall", + "src": "6966:29:37" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7001:4:37", + "nodeType": "YulLiteral", + "src": "7001:4:37", + "type": "", + "value": "0x20" + }, + { + "kind": "number", + "nativeSrc": "7007:1:37", + "nodeType": "YulLiteral", + "src": "7007:1:37", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6997:3:37", + "nodeType": "YulIdentifier", + "src": "6997:3:37" + }, + "nativeSrc": "6997:12:37", + "nodeType": "YulFunctionCall", + "src": "6997:12:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6962:3:37", + "nodeType": "YulIdentifier", + "src": "6962:3:37" + }, + "nativeSrc": "6962:48:37", + "nodeType": "YulFunctionCall", + "src": "6962:48:37" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6938:3:37", + "nodeType": "YulIdentifier", + "src": "6938:3:37" + }, + "nativeSrc": "6938:73:37", + "nodeType": "YulFunctionCall", + "src": "6938:73:37" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "6931:6:37", + "nodeType": "YulIdentifier", + "src": "6931:6:37" + }, + "nativeSrc": "6931:81:37", + "nodeType": "YulFunctionCall", + "src": "6931:81:37" + }, + "nativeSrc": "6928:168:37", + "nodeType": "YulIf", + "src": "6928:168:37" + }, + { + "nativeSrc": "7105:41:37", + "nodeType": "YulAssignment", + "src": "7105:41:37", + "value": { + "arguments": [ + { + "name": "base_ref", + "nativeSrc": "7117:8:37", + "nodeType": "YulIdentifier", + "src": "7117:8:37" + }, + { + "name": "rel_offset_of_tail", + "nativeSrc": "7127:18:37", + "nodeType": "YulIdentifier", + "src": "7127:18:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7113:3:37", + "nodeType": "YulIdentifier", + "src": "7113:3:37" + }, + "nativeSrc": "7113:33:37", + "nodeType": "YulFunctionCall", + "src": "7113:33:37" + }, + "variableNames": [ + { + "name": "addr", + "nativeSrc": "7105:4:37", + "nodeType": "YulIdentifier", + "src": "7105:4:37" + } + ] + }, + { + "nativeSrc": "7156:28:37", + "nodeType": "YulAssignment", + "src": "7156:28:37", + "value": { + "arguments": [ + { + "name": "addr", + "nativeSrc": "7179:4:37", + "nodeType": "YulIdentifier", + "src": "7179:4:37" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7166:12:37", + "nodeType": "YulIdentifier", + "src": "7166:12:37" + }, + "nativeSrc": "7166:18:37", + "nodeType": "YulFunctionCall", + "src": "7166:18:37" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "7156:6:37", + "nodeType": "YulIdentifier", + "src": "7156:6:37" + } + ] + }, + { + "body": { + "nativeSrc": "7227:83:37", + "nodeType": "YulBlock", + "src": "7227:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", + "nativeSrc": "7229:77:37", + "nodeType": "YulIdentifier", + "src": "7229:77:37" + }, + "nativeSrc": "7229:79:37", + "nodeType": "YulFunctionCall", + "src": "7229:79:37" + }, + "nativeSrc": "7229:79:37", + "nodeType": "YulExpressionStatement", + "src": "7229:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7199:6:37", + "nodeType": "YulIdentifier", + "src": "7199:6:37" + }, + { + "kind": "number", + "nativeSrc": "7207:18:37", + "nodeType": "YulLiteral", + "src": "7207:18:37", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7196:2:37", + "nodeType": "YulIdentifier", + "src": "7196:2:37" + }, + "nativeSrc": "7196:30:37", + "nodeType": "YulFunctionCall", + "src": "7196:30:37" + }, + "nativeSrc": "7193:117:37", + "nodeType": "YulIf", + "src": "7193:117:37" + }, + { + "nativeSrc": "7319:21:37", + "nodeType": "YulAssignment", + "src": "7319:21:37", + "value": { + "arguments": [ + { + "name": "addr", + "nativeSrc": "7331:4:37", + "nodeType": "YulIdentifier", + "src": "7331:4:37" + }, + { + "kind": "number", + "nativeSrc": "7337:2:37", + "nodeType": "YulLiteral", + "src": "7337:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7327:3:37", + "nodeType": "YulIdentifier", + "src": "7327:3:37" + }, + "nativeSrc": "7327:13:37", + "nodeType": "YulFunctionCall", + "src": "7327:13:37" + }, + "variableNames": [ + { + "name": "addr", + "nativeSrc": "7319:4:37", + "nodeType": "YulIdentifier", + "src": "7319:4:37" + } + ] + }, + { + "body": { + "nativeSrc": "7402:83:37", + "nodeType": "YulBlock", + "src": "7402:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", + "nativeSrc": "7404:77:37", + "nodeType": "YulIdentifier", + "src": "7404:77:37" + }, + "nativeSrc": "7404:79:37", + "nodeType": "YulFunctionCall", + "src": "7404:79:37" + }, + "nativeSrc": "7404:79:37", + "nodeType": "YulExpressionStatement", + "src": "7404:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "addr", + "nativeSrc": "7356:4:37", + "nodeType": "YulIdentifier", + "src": "7356:4:37" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "7366:12:37", + "nodeType": "YulIdentifier", + "src": "7366:12:37" + }, + "nativeSrc": "7366:14:37", + "nodeType": "YulFunctionCall", + "src": "7366:14:37" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7386:6:37", + "nodeType": "YulIdentifier", + "src": "7386:6:37" + }, + { + "kind": "number", + "nativeSrc": "7394:4:37", + "nodeType": "YulLiteral", + "src": "7394:4:37", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7382:3:37", + "nodeType": "YulIdentifier", + "src": "7382:3:37" + }, + "nativeSrc": "7382:17:37", + "nodeType": "YulFunctionCall", + "src": "7382:17:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7362:3:37", + "nodeType": "YulIdentifier", + "src": "7362:3:37" + }, + "nativeSrc": "7362:38:37", + "nodeType": "YulFunctionCall", + "src": "7362:38:37" + } + ], + "functionName": { + "name": "sgt", + "nativeSrc": "7352:3:37", + "nodeType": "YulIdentifier", + "src": "7352:3:37" + }, + "nativeSrc": "7352:49:37", + "nodeType": "YulFunctionCall", + "src": "7352:49:37" + }, + "nativeSrc": "7349:136:37", + "nodeType": "YulIf", + "src": "7349:136:37" + } + ] + }, + "name": "access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr", + "nativeSrc": "6752:740:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base_ref", + "nativeSrc": "6819:8:37", + "nodeType": "YulTypedName", + "src": "6819:8:37", + "type": "" + }, + { + "name": "ptr_to_tail", + "nativeSrc": "6829:11:37", + "nodeType": "YulTypedName", + "src": "6829:11:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "addr", + "nativeSrc": "6845:4:37", + "nodeType": "YulTypedName", + "src": "6845:4:37", + "type": "" + }, + { + "name": "length", + "nativeSrc": "6851:6:37", + "nodeType": "YulTypedName", + "src": "6851:6:37", + "type": "" + } + ], + "src": "6752:740:37" + }, + { + "body": { + "nativeSrc": "7564:263:37", + "nodeType": "YulBlock", + "src": "7564:263:37", + "statements": [ + { + "body": { + "nativeSrc": "7610:83:37", + "nodeType": "YulBlock", + "src": "7610:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "7612:77:37", + "nodeType": "YulIdentifier", + "src": "7612:77:37" + }, + "nativeSrc": "7612:79:37", + "nodeType": "YulFunctionCall", + "src": "7612:79:37" + }, + "nativeSrc": "7612:79:37", + "nodeType": "YulExpressionStatement", + "src": "7612:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "7585:7:37", + "nodeType": "YulIdentifier", + "src": "7585:7:37" + }, + { + "name": "headStart", + "nativeSrc": "7594:9:37", + "nodeType": "YulIdentifier", + "src": "7594:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7581:3:37", + "nodeType": "YulIdentifier", + "src": "7581:3:37" + }, + "nativeSrc": "7581:23:37", + "nodeType": "YulFunctionCall", + "src": "7581:23:37" + }, + { + "kind": "number", + "nativeSrc": "7606:2:37", + "nodeType": "YulLiteral", + "src": "7606:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7577:3:37", + "nodeType": "YulIdentifier", + "src": "7577:3:37" + }, + "nativeSrc": "7577:32:37", + "nodeType": "YulFunctionCall", + "src": "7577:32:37" + }, + "nativeSrc": "7574:119:37", + "nodeType": "YulIf", + "src": "7574:119:37" + }, + { + "nativeSrc": "7703:117:37", + "nodeType": "YulBlock", + "src": "7703:117:37", + "statements": [ + { + "nativeSrc": "7718:15:37", + "nodeType": "YulVariableDeclaration", + "src": "7718:15:37", + "value": { + "kind": "number", + "nativeSrc": "7732:1:37", + "nodeType": "YulLiteral", + "src": "7732:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "7722:6:37", + "nodeType": "YulTypedName", + "src": "7722:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "7747:63:37", + "nodeType": "YulAssignment", + "src": "7747:63:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7782:9:37", + "nodeType": "YulIdentifier", + "src": "7782:9:37" + }, + { + "name": "offset", + "nativeSrc": "7793:6:37", + "nodeType": "YulIdentifier", + "src": "7793:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7778:3:37", + "nodeType": "YulIdentifier", + "src": "7778:3:37" + }, + "nativeSrc": "7778:22:37", + "nodeType": "YulFunctionCall", + "src": "7778:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "7802:7:37", + "nodeType": "YulIdentifier", + "src": "7802:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "7757:20:37", + "nodeType": "YulIdentifier", + "src": "7757:20:37" + }, + "nativeSrc": "7757:53:37", + "nodeType": "YulFunctionCall", + "src": "7757:53:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "7747:6:37", + "nodeType": "YulIdentifier", + "src": "7747:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "7498:329:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7534:9:37", + "nodeType": "YulTypedName", + "src": "7534:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7545:7:37", + "nodeType": "YulTypedName", + "src": "7545:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "7557:6:37", + "nodeType": "YulTypedName", + "src": "7557:6:37", + "type": "" + } + ], + "src": "7498:329:37" + }, + { + "body": { + "nativeSrc": "7898:53:37", + "nodeType": "YulBlock", + "src": "7898:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7915:3:37", + "nodeType": "YulIdentifier", + "src": "7915:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7938:5:37", + "nodeType": "YulIdentifier", + "src": "7938:5:37" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "7920:17:37", + "nodeType": "YulIdentifier", + "src": "7920:17:37" + }, + "nativeSrc": "7920:24:37", + "nodeType": "YulFunctionCall", + "src": "7920:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7908:6:37", + "nodeType": "YulIdentifier", + "src": "7908:6:37" + }, + "nativeSrc": "7908:37:37", + "nodeType": "YulFunctionCall", + "src": "7908:37:37" + }, + "nativeSrc": "7908:37:37", + "nodeType": "YulExpressionStatement", + "src": "7908:37:37" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "7833:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7886:5:37", + "nodeType": "YulTypedName", + "src": "7886:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "7893:3:37", + "nodeType": "YulTypedName", + "src": "7893:3:37", + "type": "" + } + ], + "src": "7833:118:37" + }, + { + "body": { + "nativeSrc": "8055:124:37", + "nodeType": "YulBlock", + "src": "8055:124:37", + "statements": [ + { + "nativeSrc": "8065:26:37", + "nodeType": "YulAssignment", + "src": "8065:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8077:9:37", + "nodeType": "YulIdentifier", + "src": "8077:9:37" + }, + { + "kind": "number", + "nativeSrc": "8088:2:37", + "nodeType": "YulLiteral", + "src": "8088:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8073:3:37", + "nodeType": "YulIdentifier", + "src": "8073:3:37" + }, + "nativeSrc": "8073:18:37", + "nodeType": "YulFunctionCall", + "src": "8073:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8065:4:37", + "nodeType": "YulIdentifier", + "src": "8065:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8145:6:37", + "nodeType": "YulIdentifier", + "src": "8145:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8158:9:37", + "nodeType": "YulIdentifier", + "src": "8158:9:37" + }, + { + "kind": "number", + "nativeSrc": "8169:1:37", + "nodeType": "YulLiteral", + "src": "8169:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8154:3:37", + "nodeType": "YulIdentifier", + "src": "8154:3:37" + }, + "nativeSrc": "8154:17:37", + "nodeType": "YulFunctionCall", + "src": "8154:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "8101:43:37", + "nodeType": "YulIdentifier", + "src": "8101:43:37" + }, + "nativeSrc": "8101:71:37", + "nodeType": "YulFunctionCall", + "src": "8101:71:37" + }, + "nativeSrc": "8101:71:37", + "nodeType": "YulExpressionStatement", + "src": "8101:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "7957:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8027:9:37", + "nodeType": "YulTypedName", + "src": "8027:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8039:6:37", + "nodeType": "YulTypedName", + "src": "8039:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8050:4:37", + "nodeType": "YulTypedName", + "src": "8050:4:37", + "type": "" + } + ], + "src": "7957:222:37" + }, + { + "body": { + "nativeSrc": "8213:152:37", + "nodeType": "YulBlock", + "src": "8213:152:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8230:1:37", + "nodeType": "YulLiteral", + "src": "8230:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8233:77:37", + "nodeType": "YulLiteral", + "src": "8233:77:37", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8223:6:37", + "nodeType": "YulIdentifier", + "src": "8223:6:37" + }, + "nativeSrc": "8223:88:37", + "nodeType": "YulFunctionCall", + "src": "8223:88:37" + }, + "nativeSrc": "8223:88:37", + "nodeType": "YulExpressionStatement", + "src": "8223:88:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8327:1:37", + "nodeType": "YulLiteral", + "src": "8327:1:37", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "8330:4:37", + "nodeType": "YulLiteral", + "src": "8330:4:37", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8320:6:37", + "nodeType": "YulIdentifier", + "src": "8320:6:37" + }, + "nativeSrc": "8320:15:37", + "nodeType": "YulFunctionCall", + "src": "8320:15:37" + }, + "nativeSrc": "8320:15:37", + "nodeType": "YulExpressionStatement", + "src": "8320:15:37" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8351:1:37", + "nodeType": "YulLiteral", + "src": "8351:1:37", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8354:4:37", + "nodeType": "YulLiteral", + "src": "8354:4:37", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8344:6:37", + "nodeType": "YulIdentifier", + "src": "8344:6:37" + }, + "nativeSrc": "8344:15:37", + "nodeType": "YulFunctionCall", + "src": "8344:15:37" + }, + "nativeSrc": "8344:15:37", + "nodeType": "YulExpressionStatement", + "src": "8344:15:37" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "8185:180:37", + "nodeType": "YulFunctionDefinition", + "src": "8185:180:37" + }, + { + "body": { + "nativeSrc": "8414:190:37", + "nodeType": "YulBlock", + "src": "8414:190:37", + "statements": [ + { + "nativeSrc": "8424:33:37", + "nodeType": "YulAssignment", + "src": "8424:33:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8451:5:37", + "nodeType": "YulIdentifier", + "src": "8451:5:37" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "8433:17:37", + "nodeType": "YulIdentifier", + "src": "8433:17:37" + }, + "nativeSrc": "8433:24:37", + "nodeType": "YulFunctionCall", + "src": "8433:24:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "8424:5:37", + "nodeType": "YulIdentifier", + "src": "8424:5:37" + } + ] + }, + { + "body": { + "nativeSrc": "8547:22:37", + "nodeType": "YulBlock", + "src": "8547:22:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "8549:16:37", + "nodeType": "YulIdentifier", + "src": "8549:16:37" + }, + "nativeSrc": "8549:18:37", + "nodeType": "YulFunctionCall", + "src": "8549:18:37" + }, + "nativeSrc": "8549:18:37", + "nodeType": "YulExpressionStatement", + "src": "8549:18:37" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8472:5:37", + "nodeType": "YulIdentifier", + "src": "8472:5:37" + }, + { + "kind": "number", + "nativeSrc": "8479:66:37", + "nodeType": "YulLiteral", + "src": "8479:66:37", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "8469:2:37", + "nodeType": "YulIdentifier", + "src": "8469:2:37" + }, + "nativeSrc": "8469:77:37", + "nodeType": "YulFunctionCall", + "src": "8469:77:37" + }, + "nativeSrc": "8466:103:37", + "nodeType": "YulIf", + "src": "8466:103:37" + }, + { + "nativeSrc": "8578:20:37", + "nodeType": "YulAssignment", + "src": "8578:20:37", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8589:5:37", + "nodeType": "YulIdentifier", + "src": "8589:5:37" + }, + { + "kind": "number", + "nativeSrc": "8596:1:37", + "nodeType": "YulLiteral", + "src": "8596:1:37", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8585:3:37", + "nodeType": "YulIdentifier", + "src": "8585:3:37" + }, + "nativeSrc": "8585:13:37", + "nodeType": "YulFunctionCall", + "src": "8585:13:37" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "8578:3:37", + "nodeType": "YulIdentifier", + "src": "8578:3:37" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nativeSrc": "8371:233:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8400:5:37", + "nodeType": "YulTypedName", + "src": "8400:5:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "8410:3:37", + "nodeType": "YulTypedName", + "src": "8410:3:37", + "type": "" + } + ], + "src": "8371:233:37" + }, + { + "body": { + "nativeSrc": "8675:53:37", + "nodeType": "YulBlock", + "src": "8675:53:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8692:3:37", + "nodeType": "YulIdentifier", + "src": "8692:3:37" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8715:5:37", + "nodeType": "YulIdentifier", + "src": "8715:5:37" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "8697:17:37", + "nodeType": "YulIdentifier", + "src": "8697:17:37" + }, + "nativeSrc": "8697:24:37", + "nodeType": "YulFunctionCall", + "src": "8697:24:37" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8685:6:37", + "nodeType": "YulIdentifier", + "src": "8685:6:37" + }, + "nativeSrc": "8685:37:37", + "nodeType": "YulFunctionCall", + "src": "8685:37:37" + }, + "nativeSrc": "8685:37:37", + "nodeType": "YulExpressionStatement", + "src": "8685:37:37" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "8610:118:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8663:5:37", + "nodeType": "YulTypedName", + "src": "8663:5:37", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "8670:3:37", + "nodeType": "YulTypedName", + "src": "8670:3:37", + "type": "" + } + ], + "src": "8610:118:37" + }, + { + "body": { + "nativeSrc": "8832:124:37", + "nodeType": "YulBlock", + "src": "8832:124:37", + "statements": [ + { + "nativeSrc": "8842:26:37", + "nodeType": "YulAssignment", + "src": "8842:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8854:9:37", + "nodeType": "YulIdentifier", + "src": "8854:9:37" + }, + { + "kind": "number", + "nativeSrc": "8865:2:37", + "nodeType": "YulLiteral", + "src": "8865:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8850:3:37", + "nodeType": "YulIdentifier", + "src": "8850:3:37" + }, + "nativeSrc": "8850:18:37", + "nodeType": "YulFunctionCall", + "src": "8850:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8842:4:37", + "nodeType": "YulIdentifier", + "src": "8842:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8922:6:37", + "nodeType": "YulIdentifier", + "src": "8922:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8935:9:37", + "nodeType": "YulIdentifier", + "src": "8935:9:37" + }, + { + "kind": "number", + "nativeSrc": "8946:1:37", + "nodeType": "YulLiteral", + "src": "8946:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8931:3:37", + "nodeType": "YulIdentifier", + "src": "8931:3:37" + }, + "nativeSrc": "8931:17:37", + "nodeType": "YulFunctionCall", + "src": "8931:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "8878:43:37", + "nodeType": "YulIdentifier", + "src": "8878:43:37" + }, + "nativeSrc": "8878:71:37", + "nodeType": "YulFunctionCall", + "src": "8878:71:37" + }, + "nativeSrc": "8878:71:37", + "nodeType": "YulExpressionStatement", + "src": "8878:71:37" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "8734:222:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8804:9:37", + "nodeType": "YulTypedName", + "src": "8804:9:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8816:6:37", + "nodeType": "YulTypedName", + "src": "8816:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8827:4:37", + "nodeType": "YulTypedName", + "src": "8827:4:37", + "type": "" + } + ], + "src": "8734:222:37" + }, + { + "body": { + "nativeSrc": "9025:80:37", + "nodeType": "YulBlock", + "src": "9025:80:37", + "statements": [ + { + "nativeSrc": "9035:22:37", + "nodeType": "YulAssignment", + "src": "9035:22:37", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9050:6:37", + "nodeType": "YulIdentifier", + "src": "9050:6:37" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9044:5:37", + "nodeType": "YulIdentifier", + "src": "9044:5:37" + }, + "nativeSrc": "9044:13:37", + "nodeType": "YulFunctionCall", + "src": "9044:13:37" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "9035:5:37", + "nodeType": "YulIdentifier", + "src": "9035:5:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "9093:5:37", + "nodeType": "YulIdentifier", + "src": "9093:5:37" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "9066:26:37", + "nodeType": "YulIdentifier", + "src": "9066:26:37" + }, + "nativeSrc": "9066:33:37", + "nodeType": "YulFunctionCall", + "src": "9066:33:37" + }, + "nativeSrc": "9066:33:37", + "nodeType": "YulExpressionStatement", + "src": "9066:33:37" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "8962:143:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "9003:6:37", + "nodeType": "YulTypedName", + "src": "9003:6:37", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9011:3:37", + "nodeType": "YulTypedName", + "src": "9011:3:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "9019:5:37", + "nodeType": "YulTypedName", + "src": "9019:5:37", + "type": "" + } + ], + "src": "8962:143:37" + }, + { + "body": { + "nativeSrc": "9188:274:37", + "nodeType": "YulBlock", + "src": "9188:274:37", + "statements": [ + { + "body": { + "nativeSrc": "9234:83:37", + "nodeType": "YulBlock", + "src": "9234:83:37", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "9236:77:37", + "nodeType": "YulIdentifier", + "src": "9236:77:37" + }, + "nativeSrc": "9236:79:37", + "nodeType": "YulFunctionCall", + "src": "9236:79:37" + }, + "nativeSrc": "9236:79:37", + "nodeType": "YulExpressionStatement", + "src": "9236:79:37" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9209:7:37", + "nodeType": "YulIdentifier", + "src": "9209:7:37" + }, + { + "name": "headStart", + "nativeSrc": "9218:9:37", + "nodeType": "YulIdentifier", + "src": "9218:9:37" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9205:3:37", + "nodeType": "YulIdentifier", + "src": "9205:3:37" + }, + "nativeSrc": "9205:23:37", + "nodeType": "YulFunctionCall", + "src": "9205:23:37" + }, + { + "kind": "number", + "nativeSrc": "9230:2:37", + "nodeType": "YulLiteral", + "src": "9230:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9201:3:37", + "nodeType": "YulIdentifier", + "src": "9201:3:37" + }, + "nativeSrc": "9201:32:37", + "nodeType": "YulFunctionCall", + "src": "9201:32:37" + }, + "nativeSrc": "9198:119:37", + "nodeType": "YulIf", + "src": "9198:119:37" + }, + { + "nativeSrc": "9327:128:37", + "nodeType": "YulBlock", + "src": "9327:128:37", + "statements": [ + { + "nativeSrc": "9342:15:37", + "nodeType": "YulVariableDeclaration", + "src": "9342:15:37", + "value": { + "kind": "number", + "nativeSrc": "9356:1:37", + "nodeType": "YulLiteral", + "src": "9356:1:37", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9346:6:37", + "nodeType": "YulTypedName", + "src": "9346:6:37", + "type": "" + } + ] + }, + { + "nativeSrc": "9371:74:37", + "nodeType": "YulAssignment", + "src": "9371:74:37", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9417:9:37", + "nodeType": "YulIdentifier", + "src": "9417:9:37" + }, + { + "name": "offset", + "nativeSrc": "9428:6:37", + "nodeType": "YulIdentifier", + "src": "9428:6:37" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9413:3:37", + "nodeType": "YulIdentifier", + "src": "9413:3:37" + }, + "nativeSrc": "9413:22:37", + "nodeType": "YulFunctionCall", + "src": "9413:22:37" + }, + { + "name": "dataEnd", + "nativeSrc": "9437:7:37", + "nodeType": "YulIdentifier", + "src": "9437:7:37" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "9381:31:37", + "nodeType": "YulIdentifier", + "src": "9381:31:37" + }, + "nativeSrc": "9381:64:37", + "nodeType": "YulFunctionCall", + "src": "9381:64:37" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9371:6:37", + "nodeType": "YulIdentifier", + "src": "9371:6:37" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nativeSrc": "9111:351:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9158:9:37", + "nodeType": "YulTypedName", + "src": "9158:9:37", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9169:7:37", + "nodeType": "YulTypedName", + "src": "9169:7:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9181:6:37", + "nodeType": "YulTypedName", + "src": "9181:6:37", + "type": "" + } + ], + "src": "9111:351:37" + }, + { + "body": { + "nativeSrc": "9594:206:37", + "nodeType": "YulBlock", + "src": "9594:206:37", + "statements": [ + { + "nativeSrc": "9604:26:37", + "nodeType": "YulAssignment", + "src": "9604:26:37", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9616:9:37", + "nodeType": "YulIdentifier", + "src": "9616:9:37" + }, + { + "kind": "number", + "nativeSrc": "9627:2:37", + "nodeType": "YulLiteral", + "src": "9627:2:37", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9612:3:37", + "nodeType": "YulIdentifier", + "src": "9612:3:37" + }, + "nativeSrc": "9612:18:37", + "nodeType": "YulFunctionCall", + "src": "9612:18:37" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9604:4:37", + "nodeType": "YulIdentifier", + "src": "9604:4:37" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "9684:6:37", + "nodeType": "YulIdentifier", + "src": "9684:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9697:9:37", + "nodeType": "YulIdentifier", + "src": "9697:9:37" + }, + { + "kind": "number", + "nativeSrc": "9708:1:37", + "nodeType": "YulLiteral", + "src": "9708:1:37", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9693:3:37", + "nodeType": "YulIdentifier", + "src": "9693:3:37" + }, + "nativeSrc": "9693:17:37", + "nodeType": "YulFunctionCall", + "src": "9693:17:37" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "9640:43:37", + "nodeType": "YulIdentifier", + "src": "9640:43:37" + }, + "nativeSrc": "9640:71:37", + "nodeType": "YulFunctionCall", + "src": "9640:71:37" + }, + "nativeSrc": "9640:71:37", + "nodeType": "YulExpressionStatement", + "src": "9640:71:37" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "9765:6:37", + "nodeType": "YulIdentifier", + "src": "9765:6:37" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9778:9:37", + "nodeType": "YulIdentifier", + "src": "9778:9:37" + }, + { + "kind": "number", + "nativeSrc": "9789:2:37", + "nodeType": "YulLiteral", + "src": "9789:2:37", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9774:3:37", + "nodeType": "YulIdentifier", + "src": "9774:3:37" + }, + "nativeSrc": "9774:18:37", + "nodeType": "YulFunctionCall", + "src": "9774:18:37" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "9721:43:37", + "nodeType": "YulIdentifier", + "src": "9721:43:37" + }, + "nativeSrc": "9721:72:37", + "nodeType": "YulFunctionCall", + "src": "9721:72:37" + }, + "nativeSrc": "9721:72:37", + "nodeType": "YulExpressionStatement", + "src": "9721:72:37" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", + "nativeSrc": "9468:332:37", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9558:9:37", + "nodeType": "YulTypedName", + "src": "9558:9:37", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9570:6:37", + "nodeType": "YulTypedName", + "src": "9570:6:37", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "9578:6:37", + "nodeType": "YulTypedName", + "src": "9578:6:37", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9589:4:37", + "nodeType": "YulTypedName", + "src": "9589:4:37", + "type": "" + } + ], + "src": "9468:332:37" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_bytes32t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // uint256[][]\n function abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes32t_array$_t_address_$dyn_calldata_ptrt_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3, value4 := abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_ISciRegistry_$7088_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7088_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7088__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7088_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x20))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n", + "id": 37, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "6499": [ + { + "length": 32, + "start": 1107 + }, + { + "length": 32, + "start": 1688 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100575760003560e01c8063046852d01461005c5780630f59a4981461008c57806379fb477a146100a85780637b103999146100d857806382ef31d9146100f6575b600080fd5b61007660048036038101906100719190610862565b610112565b60405161008391906108c4565b60405180910390f35b6100a660048036038101906100a1919061099a565b61022a565b005b6100c260048036038101906100bd9190610862565b61041f565b6040516100cf91906108c4565b60405180910390f35b6100e0610451565b6040516100ed9190610a8e565b60405180910390f35b610110600480360381019061010b919061099a565b610475565b005b60008060008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600081146101895780915050610223565b60008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020019081526020016000205490506000811461021d5780915050610223565b60009150505b9392505050565b610232610677565b8561023d828261067f565b60005b868690508110156104155760005b85858381811061026157610260610aa9565b5b90506020028101906102739190610ae7565b905081101561040957426000808b815260200190815260200160002060008a8a868181106102a4576102a3610aa9565b5b90506020020160208101906102b99190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061030857610307610aa9565b5b905060200281019061031a9190610ae7565b8581811061032b5761032a610aa9565b5b9050602002013581526020019081526020016000208190555087878381811061035757610356610aa9565b5b905060200201602081019061036c9190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1686868481811061039557610394610aa9565b5b90506020028101906103a79190610ae7565b838181106103b8576103b7610aa9565b5b905060200201358a7fc177490b924686771eb8a2b77bee53e5913e624c90b60207d396f81cfe6e7cd06103e9610677565b6040516103f69190610b86565b60405180910390a480600101905061024e565b50806001019050610240565b5050505050505050565b600060205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b61047d610677565b85610488828261067f565b60005b8686905081101561066d5760005b8585838181106104ac576104ab610aa9565b5b90506020028101906104be9190610ae7565b90508110156106615760008060008b815260200190815260200160002060008a8a868181106104f0576104ef610aa9565b5b90506020020160208101906105059190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061055457610553610aa9565b5b90506020028101906105669190610ae7565b8581811061057757610576610aa9565b5b905060200201358152602001908152602001600020819055508787838181106105a3576105a2610aa9565b5b90506020020160208101906105b89190610b4a565b73ffffffffffffffffffffffffffffffffffffffff168686848181106105e1576105e0610aa9565b5b90506020028101906105f39190610ae7565b8381811061060457610603610aa9565b5b905060200201358a7f36be184145fbd476ffe0597f987f89d7490b926e334512a42de54749eee25e75610635610677565b6040516106429190610b86565b60405180910390a48060010190508061065a90610bd0565b9050610499565b5080600101905061048b565b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016106ef9190610c27565b602060405180830381865afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190610c57565b73ffffffffffffffffffffffffffffffffffffffff161461078a5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401610781929190610c84565b60405180910390fd5b5050565b600080fd5b600080fd5b6000819050919050565b6107ab81610798565b81146107b657600080fd5b50565b6000813590506107c8816107a2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107f9826107ce565b9050919050565b610809816107ee565b811461081457600080fd5b50565b60008135905061082681610800565b92915050565b6000819050919050565b61083f8161082c565b811461084a57600080fd5b50565b60008135905061085c81610836565b92915050565b60008060006060848603121561087b5761087a61078e565b5b6000610889868287016107b9565b935050602061089a86828701610817565b92505060406108ab8682870161084d565b9150509250925092565b6108be8161082c565b82525050565b60006020820190506108d960008301846108b5565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610904576109036108df565b5b8235905067ffffffffffffffff811115610921576109206108e4565b5b60208301915083602082028301111561093d5761093c6108e9565b5b9250929050565b60008083601f84011261095a576109596108df565b5b8235905067ffffffffffffffff811115610977576109766108e4565b5b602083019150836020820283011115610993576109926108e9565b5b9250929050565b6000806000806000606086880312156109b6576109b561078e565b5b60006109c4888289016107b9565b955050602086013567ffffffffffffffff8111156109e5576109e4610793565b5b6109f1888289016108ee565b9450945050604086013567ffffffffffffffff811115610a1457610a13610793565b5b610a2088828901610944565b92509250509295509295909350565b6000819050919050565b6000610a54610a4f610a4a846107ce565b610a2f565b6107ce565b9050919050565b6000610a6682610a39565b9050919050565b6000610a7882610a5b565b9050919050565b610a8881610a6d565b82525050565b6000602082019050610aa36000830184610a7f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112610b0457610b03610ad8565b5b80840192508235915067ffffffffffffffff821115610b2657610b25610add565b5b602083019250602082023603831315610b4257610b41610ae2565b5b509250929050565b600060208284031215610b6057610b5f61078e565b5b6000610b6e84828501610817565b91505092915050565b610b80816107ee565b82525050565b6000602082019050610b9b6000830184610b77565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bdb8261082c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c0d57610c0c610ba1565b5b600182019050919050565b610c2181610798565b82525050565b6000602082019050610c3c6000830184610c18565b92915050565b600081519050610c5181610800565b92915050565b600060208284031215610c6d57610c6c61078e565b5b6000610c7b84828501610c42565b91505092915050565b6000604082019050610c996000830185610b77565b610ca66020830184610c18565b939250505056fea2646970667358221220e19e189f4f848086a4754a9206058bc9b93d6e078c6e1ebe9364c03045d6085764736f6c634300081c0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x46852D0 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0xF59A498 EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x79FB477A EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0xD8 JUMPI DUP1 PUSH4 0x82EF31D9 EQ PUSH2 0xF6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x862 JUMP JUMPDEST PUSH2 0x112 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x8C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA1 SWAP2 SWAP1 PUSH2 0x99A JUMP JUMPDEST PUSH2 0x22A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x862 JUMP JUMPDEST PUSH2 0x41F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x8C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE0 PUSH2 0x451 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0xA8E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x110 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10B SWAP2 SWAP1 PUSH2 0x99A JUMP JUMPDEST PUSH2 0x475 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x189 JUMPI DUP1 SWAP2 POP POP PUSH2 0x223 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x21D JUMPI DUP1 SWAP2 POP POP PUSH2 0x223 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x232 PUSH2 0x677 JUMP JUMPDEST DUP6 PUSH2 0x23D DUP3 DUP3 PUSH2 0x67F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0x415 JUMPI PUSH1 0x0 JUMPDEST DUP6 DUP6 DUP4 DUP2 DUP2 LT PUSH2 0x261 JUMPI PUSH2 0x260 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x273 SWAP2 SWAP1 PUSH2 0xAE7 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x409 JUMPI TIMESTAMP PUSH1 0x0 DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x2A4 JUMPI PUSH2 0x2A3 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0xB4A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP9 DUP7 DUP2 DUP2 LT PUSH2 0x308 JUMPI PUSH2 0x307 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x31A SWAP2 SWAP1 PUSH2 0xAE7 JUMP JUMPDEST DUP6 DUP2 DUP2 LT PUSH2 0x32B JUMPI PUSH2 0x32A PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x357 JUMPI PUSH2 0x356 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x36C SWAP2 SWAP1 PUSH2 0xB4A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x395 JUMPI PUSH2 0x394 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x3A7 SWAP2 SWAP1 PUSH2 0xAE7 JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x3B8 JUMPI PUSH2 0x3B7 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP11 PUSH32 0xC177490B924686771EB8A2B77BEE53E5913E624C90B60207D396F81CFE6E7CD0 PUSH2 0x3E9 PUSH2 0x677 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F6 SWAP2 SWAP1 PUSH2 0xB86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x24E JUMP JUMPDEST POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x240 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP3 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP3 POP SWAP3 POP POP POP SLOAD DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x47D PUSH2 0x677 JUMP JUMPDEST DUP6 PUSH2 0x488 DUP3 DUP3 PUSH2 0x67F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0x66D JUMPI PUSH1 0x0 JUMPDEST DUP6 DUP6 DUP4 DUP2 DUP2 LT PUSH2 0x4AC JUMPI PUSH2 0x4AB PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x4BE SWAP2 SWAP1 PUSH2 0xAE7 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x661 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x4F0 JUMPI PUSH2 0x4EF PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x505 SWAP2 SWAP1 PUSH2 0xB4A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP9 DUP7 DUP2 DUP2 LT PUSH2 0x554 JUMPI PUSH2 0x553 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x566 SWAP2 SWAP1 PUSH2 0xAE7 JUMP JUMPDEST DUP6 DUP2 DUP2 LT PUSH2 0x577 JUMPI PUSH2 0x576 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x5A3 JUMPI PUSH2 0x5A2 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x5B8 SWAP2 SWAP1 PUSH2 0xB4A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x5E1 JUMPI PUSH2 0x5E0 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x5F3 SWAP2 SWAP1 PUSH2 0xAE7 JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x604 JUMPI PUSH2 0x603 PUSH2 0xAA9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP11 PUSH32 0x36BE184145FBD476FFE0597F987F89D7490B926E334512A42DE54749EEE25E75 PUSH2 0x635 PUSH2 0x677 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x642 SWAP2 SWAP1 PUSH2 0xB86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x1 ADD SWAP1 POP DUP1 PUSH2 0x65A SWAP1 PUSH2 0xBD0 JUMP JUMPDEST SWAP1 POP PUSH2 0x499 JUMP JUMPDEST POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x48B JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD26CDD20 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP2 SWAP1 PUSH2 0xC27 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x70C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x730 SWAP2 SWAP1 PUSH2 0xC57 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x78A JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x2EBB0EF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x781 SWAP3 SWAP2 SWAP1 PUSH2 0xC84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7AB DUP2 PUSH2 0x798 JUMP JUMPDEST DUP2 EQ PUSH2 0x7B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7C8 DUP2 PUSH2 0x7A2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7F9 DUP3 PUSH2 0x7CE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x809 DUP2 PUSH2 0x7EE JUMP JUMPDEST DUP2 EQ PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x826 DUP2 PUSH2 0x800 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x83F DUP2 PUSH2 0x82C JUMP JUMPDEST DUP2 EQ PUSH2 0x84A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x85C DUP2 PUSH2 0x836 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x87B JUMPI PUSH2 0x87A PUSH2 0x78E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x889 DUP7 DUP3 DUP8 ADD PUSH2 0x7B9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x89A DUP7 DUP3 DUP8 ADD PUSH2 0x817 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x8AB DUP7 DUP3 DUP8 ADD PUSH2 0x84D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x8BE DUP2 PUSH2 0x82C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x8D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x904 JUMPI PUSH2 0x903 PUSH2 0x8DF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x921 JUMPI PUSH2 0x920 PUSH2 0x8E4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x93D JUMPI PUSH2 0x93C PUSH2 0x8E9 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x95A JUMPI PUSH2 0x959 PUSH2 0x8DF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x977 JUMPI PUSH2 0x976 PUSH2 0x8E4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x993 JUMPI PUSH2 0x992 PUSH2 0x8E9 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x9B6 JUMPI PUSH2 0x9B5 PUSH2 0x78E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x9C4 DUP9 DUP3 DUP10 ADD PUSH2 0x7B9 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9E5 JUMPI PUSH2 0x9E4 PUSH2 0x793 JUMP JUMPDEST JUMPDEST PUSH2 0x9F1 DUP9 DUP3 DUP10 ADD PUSH2 0x8EE JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA14 JUMPI PUSH2 0xA13 PUSH2 0x793 JUMP JUMPDEST JUMPDEST PUSH2 0xA20 DUP9 DUP3 DUP10 ADD PUSH2 0x944 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA54 PUSH2 0xA4F PUSH2 0xA4A DUP5 PUSH2 0x7CE JUMP JUMPDEST PUSH2 0xA2F JUMP JUMPDEST PUSH2 0x7CE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA66 DUP3 PUSH2 0xA39 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA78 DUP3 PUSH2 0xA5B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA88 DUP2 PUSH2 0xA6D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAA3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA7F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0xB04 JUMPI PUSH2 0xB03 PUSH2 0xAD8 JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xB26 JUMPI PUSH2 0xB25 PUSH2 0xADD JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x20 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0xB42 JUMPI PUSH2 0xB41 PUSH2 0xAE2 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB60 JUMPI PUSH2 0xB5F PUSH2 0x78E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB6E DUP5 DUP3 DUP6 ADD PUSH2 0x817 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB80 DUP2 PUSH2 0x7EE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB9B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB77 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBDB DUP3 PUSH2 0x82C JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0xC0D JUMPI PUSH2 0xC0C PUSH2 0xBA1 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC21 DUP2 PUSH2 0x798 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC3C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC18 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xC51 DUP2 PUSH2 0x800 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC6D JUMPI PUSH2 0xC6C PUSH2 0x78E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC7B DUP5 DUP3 DUP6 ADD PUSH2 0xC42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xC99 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xB77 JUMP JUMPDEST PUSH2 0xCA6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xC18 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE1 SWAP15 XOR SWAP16 0x4F DUP5 DUP1 DUP7 LOG4 PUSH22 0x4A9206058BC9B93D6E078C6E1EBE9364C03045D60857 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", + "sourceMap": "626:3305:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3372:557;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1774:690;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;817:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;349:38:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2647:663:36;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3372:557;3507:7;3526:24;3553:17;:29;3571:10;3553:29;;;;;;;;;;;:46;3583:15;3553:46;;;;;;;;;;;;;;;:55;3600:7;3553:55;;;;;;;;;;;;3526:82;;3643:1;3623:16;:21;3619:75;;3667:16;3660:23;;;;;3619:75;3723:17;:29;3741:10;3723:29;;;;;;;;;;;:46;3753:15;3723:46;;;;;;;;;;;;;;;:55;732:12;3723:55;;;;;;;;;;;;3704:74;;3812:1;3792:16;:21;3788:75;;3836:16;3829:23;;;;;3788:75;3921:1;3914:8;;;3372:557;;;;;;:::o;1774:690::-;1940:12;:10;:12::i;:::-;1954:10;872:38:27;890:7;899:10;872:17;:38::i;:::-;1981:9:36::1;1976:482;1996:17;;:24;;1992:1;:28;1976:482;;;2043:9;2038:351;2058:8;;2067:1;2058:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:18;;2054:1;:22;2038:351;;;2168:36;2098:17;:29:::0;2116:10:::1;2098:29;;;;;;;;;;;:51;2128:17;;2146:1;2128:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2098:51;;;;;;;;;;;;;;;:67;2150:8;;2159:1;2150:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;2162:1;2150:14;;;;;;;:::i;:::-;;;;;;;;2098:67;;;;;;;;;;;:106;;;;2268:17;;2286:1;2268:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2227:76;;2252:8;;2261:1;2252:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;2264:1;2252:14;;;;;;;:::i;:::-;;;;;;;;2240:10;2227:76;2290:12;:10;:12::i;:::-;2227:76;;;;;;:::i;:::-;;;;;;;;2353:3;;;;;2038:351;;;;2430:3;;;;;1976:482;;;;1774:690:::0;;;;;;;:::o;817:153::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;349:38:27:-;;;:::o;2647:663:36:-;2816:12;:10;:12::i;:::-;2830:10;872:38:27;890:7;899:10;872:17;:38::i;:::-;2857:9:36::1;2852:452;2872:17;;:24;;2868:1;:28;2852:452;;;2919:9;2914:321;2934:8;;2943:1;2934:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:18;;2930:1;:22;2914:321;;;3047:1;2977:17:::0;:29:::1;2995:10;2977:29;;;;;;;;;;;:51;3007:17;;3025:1;3007:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2977:51;;;;;;;;;;;;;;;:67;3029:8;;3038:1;3029:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;3041:1;3029:14;;;;;;;:::i;:::-;;;;;;;;2977:67;;;;;;;;;;;:71;;;;3114:17;;3132:1;3114:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3071:78;;3098:8;;3107:1;3098:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;3110:1;3098:14;;;;;;;:::i;:::-;;;;;;;;3086:10;3071:78;3136:12;:10;:12::i;:::-;3071:78;;;;;;:::i;:::-;;;;;;;;3199:3;;;;;2954;;;;:::i;:::-;;;2914:321;;;;3276:3;;;;;2852:452;;;;2647:663:::0;;;;;;;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;1487:218:27:-;1614:7;1578:43;;:8;:20;;;1599:10;1578:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;;1574:125;;1668:7;1677:10;1644:44;;;;;;;;;;;;:::i;:::-;;;;;;;;1574:125;1487:218;;:::o;88:117:37:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:77::-;1234:7;1263:5;1252:16;;1197:77;;;:::o;1280:122::-;1353:24;1371:5;1353:24;:::i;:::-;1346:5;1343:35;1333:63;;1392:1;1389;1382:12;1333:63;1280:122;:::o;1408:139::-;1454:5;1492:6;1479:20;1470:29;;1508:33;1535:5;1508:33;:::i;:::-;1408:139;;;;:::o;1553:619::-;1630:6;1638;1646;1695:2;1683:9;1674:7;1670:23;1666:32;1663:119;;;1701:79;;:::i;:::-;1663:119;1821:1;1846:53;1891:7;1882:6;1871:9;1867:22;1846:53;:::i;:::-;1836:63;;1792:117;1948:2;1974:53;2019:7;2010:6;1999:9;1995:22;1974:53;:::i;:::-;1964:63;;1919:118;2076:2;2102:53;2147:7;2138:6;2127:9;2123:22;2102:53;:::i;:::-;2092:63;;2047:118;1553:619;;;;;:::o;2178:118::-;2265:24;2283:5;2265:24;:::i;:::-;2260:3;2253:37;2178:118;;:::o;2302:222::-;2395:4;2433:2;2422:9;2418:18;2410:26;;2446:71;2514:1;2503:9;2499:17;2490:6;2446:71;:::i;:::-;2302:222;;;;:::o;2530:117::-;2639:1;2636;2629:12;2653:117;2762:1;2759;2752:12;2776:117;2885:1;2882;2875:12;2916:568;2989:8;2999:6;3049:3;3042:4;3034:6;3030:17;3026:27;3016:122;;3057:79;;:::i;:::-;3016:122;3170:6;3157:20;3147:30;;3200:18;3192:6;3189:30;3186:117;;;3222:79;;:::i;:::-;3186:117;3336:4;3328:6;3324:17;3312:29;;3390:3;3382:4;3374:6;3370:17;3360:8;3356:32;3353:41;3350:128;;;3397:79;;:::i;:::-;3350:128;2916:568;;;;;:::o;3509:595::-;3609:8;3619:6;3669:3;3662:4;3654:6;3650:17;3646:27;3636:122;;3677:79;;:::i;:::-;3636:122;3790:6;3777:20;3767:30;;3820:18;3812:6;3809:30;3806:117;;;3842:79;;:::i;:::-;3806:117;3956:4;3948:6;3944:17;3932:29;;4010:3;4002:4;3994:6;3990:17;3980:8;3976:32;3973:41;3970:128;;;4017:79;;:::i;:::-;3970:128;3509:595;;;;;:::o;4110:1133::-;4268:6;4276;4284;4292;4300;4349:2;4337:9;4328:7;4324:23;4320:32;4317:119;;;4355:79;;:::i;:::-;4317:119;4475:1;4500:53;4545:7;4536:6;4525:9;4521:22;4500:53;:::i;:::-;4490:63;;4446:117;4630:2;4619:9;4615:18;4602:32;4661:18;4653:6;4650:30;4647:117;;;4683:79;;:::i;:::-;4647:117;4796:80;4868:7;4859:6;4848:9;4844:22;4796:80;:::i;:::-;4778:98;;;;4573:313;4953:2;4942:9;4938:18;4925:32;4984:18;4976:6;4973:30;4970:117;;;5006:79;;:::i;:::-;4970:117;5119:107;5218:7;5209:6;5198:9;5194:22;5119:107;:::i;:::-;5101:125;;;;4896:340;4110:1133;;;;;;;;:::o;5249:60::-;5277:3;5298:5;5291:12;;5249:60;;;:::o;5315:142::-;5365:9;5398:53;5416:34;5425:24;5443:5;5425:24;:::i;:::-;5416:34;:::i;:::-;5398:53;:::i;:::-;5385:66;;5315:142;;;:::o;5463:126::-;5513:9;5546:37;5577:5;5546:37;:::i;:::-;5533:50;;5463:126;;;:::o;5595:147::-;5666:9;5699:37;5730:5;5699:37;:::i;:::-;5686:50;;5595:147;;;:::o;5748:173::-;5856:58;5908:5;5856:58;:::i;:::-;5851:3;5844:71;5748:173;;:::o;5927:264::-;6041:4;6079:2;6068:9;6064:18;6056:26;;6092:92;6181:1;6170:9;6166:17;6157:6;6092:92;:::i;:::-;5927:264;;;;:::o;6197:180::-;6245:77;6242:1;6235:88;6342:4;6339:1;6332:15;6366:4;6363:1;6356:15;6383:117;6492:1;6489;6482:12;6506:117;6615:1;6612;6605:12;6629:117;6738:1;6735;6728:12;6752:740;6845:4;6851:6;6907:11;6894:25;7007:1;7001:4;6997:12;6986:8;6970:14;6966:29;6962:48;6942:18;6938:73;6928:168;;7015:79;;:::i;:::-;6928:168;7127:18;7117:8;7113:33;7105:41;;7179:4;7166:18;7156:28;;7207:18;7199:6;7196:30;7193:117;;;7229:79;;:::i;:::-;7193:117;7337:2;7331:4;7327:13;7319:21;;7394:4;7386:6;7382:17;7366:14;7362:38;7356:4;7352:49;7349:136;;;7404:79;;:::i;:::-;7349:136;6858:634;6752:740;;;;;:::o;7498:329::-;7557:6;7606:2;7594:9;7585:7;7581:23;7577:32;7574:119;;;7612:79;;:::i;:::-;7574:119;7732:1;7757:53;7802:7;7793:6;7782:9;7778:22;7757:53;:::i;:::-;7747:63;;7703:117;7498:329;;;;:::o;7833:118::-;7920:24;7938:5;7920:24;:::i;:::-;7915:3;7908:37;7833:118;;:::o;7957:222::-;8050:4;8088:2;8077:9;8073:18;8065:26;;8101:71;8169:1;8158:9;8154:17;8145:6;8101:71;:::i;:::-;7957:222;;;;:::o;8185:180::-;8233:77;8230:1;8223:88;8330:4;8327:1;8320:15;8354:4;8351:1;8344:15;8371:233;8410:3;8433:24;8451:5;8433:24;:::i;:::-;8424:33;;8479:66;8472:5;8469:77;8466:103;;8549:18;;:::i;:::-;8466:103;8596:1;8589:5;8585:13;8578:20;;8371:233;;;:::o;8610:118::-;8697:24;8715:5;8697:24;:::i;:::-;8692:3;8685:37;8610:118;;:::o;8734:222::-;8827:4;8865:2;8854:9;8850:18;8842:26;;8878:71;8946:1;8935:9;8931:17;8922:6;8878:71;:::i;:::-;8734:222;;;;:::o;8962:143::-;9019:5;9050:6;9044:13;9035:22;;9066:33;9093:5;9066:33;:::i;:::-;8962:143;;;;:::o;9111:351::-;9181:6;9230:2;9218:9;9209:7;9205:23;9201:32;9198:119;;;9236:79;;:::i;:::-;9198:119;9356:1;9381:64;9437:7;9428:6;9417:9;9413:22;9381:64;:::i;:::-;9371:74;;9327:128;9111:351;;;;:::o;9468:332::-;9589:4;9627:2;9616:9;9612:18;9604:26;;9640:71;9708:1;9697:9;9693:17;9684:6;9640:71;:::i;:::-;9721:72;9789:2;9778:9;9774:18;9765:6;9721:72;:::i;:::-;9468:332;;;;;:::o" + }, + "methodIdentifiers": { + "addAddresses(bytes32,address[],uint256[][])": "0f59a498", + "isVerified(bytes32,address,uint256)": "046852d0", + "registry()": "7b103999", + "removeAddresses(bytes32,address[],uint256[][])": "82ef31d9", + "verifiedContracts(bytes32,address,uint256)": "79fb477a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"AccountIsNotDomainOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"AddressAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"AddressRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"contractAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"chainIds\",\"type\":\"uint256[][]\"}],\"name\":\"addAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"isVerified\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ISciRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"contractAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"chainIds\",\"type\":\"uint256[][]\"}],\"name\":\"removeAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"verifiedContracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"registerTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This contract implements the Verifier interface. Domain owners can add or remove addresses that can interact within their domain. If the owner of the domain sets a contract address with MAX_INT as chain id then it assumes this contract is verified for all chains for that domain.\",\"errors\":{\"AccountIsNotDomainOwner(address,bytes32)\":[{\"details\":\"Thrown when the `account` is not the owner of the domainhash.\"}]},\"events\":{\"AddressAdded(bytes32,uint256,address,address)\":{\"details\":\"Emitted when the `msgSender` adds an address to a `domainHash` for a `chainId`.\"},\"AddressRemoved(bytes32,uint256,address,address)\":{\"details\":\"Emitted when the `msgSender` removes an address to a `domainHash` for a `chainId`.\"}},\"kind\":\"dev\",\"methods\":{\"addAddresses(bytes32,address[],uint256[][])\":{\"details\":\"Adds multiple addresses in multiple chains to the domain. Requirements: - The caller must be the owner of the domain.\"},\"isVerified(bytes32,address,uint256)\":{\"details\":\"See {IVerifier-isVerified}.\"},\"removeAddresses(bytes32,address[],uint256[][])\":{\"details\":\"Removes multiple addresses in multiple chains to the domain. Requirements: - The caller must be the owner of the domain.\"}},\"title\":\"PublicListVerifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Verifiers/PublicListVerifier.sol\":\"PublicListVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/DomainMangager/DomainManager.sol\":{\"keccak256\":\"0x2f6561beb24705ed75d5b62c52b89b94f2f83221e5ae2edc4bb73cae522c05fc\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b550be56d1243674f84c9ebec6d483b5b695032c1ce0e5a42aba69e4e1f464c1\",\"dweb:/ipfs/QmNx936U7GV6yaxsM2VfYMVA4P1ceLafseYzerkPws8ZDK\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]},\"contracts/Verifiers/PublicListVerifier.sol\":{\"keccak256\":\"0x4a96fdeb62901634d975462859d70bc024650593137fd16083ac6ad199d70af5\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://d7a8f4e9f48b1c5c12c84225ec12967c7fc957e970250cf35261f02e86e22a32\",\"dweb:/ipfs/QmSYzvbHKjzVu1fHyrSTwuB6tFWtVdq9f9HAyj6kt54cze\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 7483, + "contract": "contracts/Verifiers/PublicListVerifier.sol:PublicListVerifier", + "label": "verifiedContracts", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_bytes32,t_mapping(t_address,t_mapping(t_uint256,t_uint256)))" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_uint256,t_uint256))": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => mapping(uint256 => uint256))", + "numberOfBytes": "32", + "value": "t_mapping(t_uint256,t_uint256)" + }, + "t_mapping(t_bytes32,t_mapping(t_address,t_mapping(t_uint256,t_uint256)))": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))", + "numberOfBytes": "32", + "value": "t_mapping(t_address,t_mapping(t_uint256,t_uint256))" + }, + "t_mapping(t_uint256,t_uint256)": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/deployed_addresses.json b/ignition/deployments/chain-11155111/deployed_addresses.json new file mode 100644 index 0000000..a0ccd35 --- /dev/null +++ b/ignition/deployments/chain-11155111/deployed_addresses.json @@ -0,0 +1,9 @@ +{ + "SciRegistry#SciRegistry": "0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A", + "PublicListVerifier#PublicListVerifier": "0xd58d48185146343720df2C26FcD8D3C3734e22cf", + "SciRegstrar#SciRegistrar": "0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5", + "ProxyModule#SCI": "0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4", + "ProxyModule#TransparentUpgradeableProxy": "0x1694F779f28E3B3ff409d62c9d9d7042Ff406aEC", + "ProxyModule#ProxyAdmin": "0x9007eD4FFa791BB63662D6E894A97e163e4C2A23", + "SciModule#SCI": "0x1694F779f28E3B3ff409d62c9d9d7042Ff406aEC" +} diff --git a/ignition/deployments/chain-11155111/journal.jsonl b/ignition/deployments/chain-11155111/journal.jsonl new file mode 100644 index 0000000..3088f41 --- /dev/null +++ b/ignition/deployments/chain-11155111/journal.jsonl @@ -0,0 +1,58 @@ + +{"chainId":11155111,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"SciRegistry#SciRegistry","constructorArgs":[0],"contractName":"SciRegistry","dependencies":[],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","futureId":"SciRegistry#SciRegistry","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"SciRegistry#SciRegistry","networkInteraction":{"data":"0x60a060405234801561001057600080fd5b5060405161292d38038061292d8339818101604052810190610032919061051a565b308161004261019560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b45760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100ab9190610588565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100ec6000801b8261019d60201b60201c565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506000600360006101000a81548160ff02191690831515021790555061018f7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092387f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750961027660201b60201c565b506105a3565b600033905090565b60008060001b830361025e57600073ffffffffffffffffffffffffffffffffffffffff166101cf6102c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461021c576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61026e83836102f060201b60201c565b905092915050565b6000801b82036102b2576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102c282826103ed60201b60201c565b5050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610302838361044e60201b60201c565b6103e257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061037f61019560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506103e7565b600090505b92915050565b60006103fe836104b860201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806000838152602001908152602001600020600101549050919050565b600080fd5b600065ffffffffffff82169050919050565b6104f7816104dc565b811461050257600080fd5b50565b600081519050610514816104ee565b92915050565b6000602082840312156105305761052f6104d7565b5b600061053e84828501610505565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061057282610547565b9050919050565b61058281610567565b82525050565b600060208201905061059d6000830184610579565b92915050565b6080516123686105c560003960008181610924015261115a01526123686000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ca7565b6105ff565b6040516102279190611cef565b60405180910390f35b610238610679565b6040516102459190611d2b565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611d7c565b61069c565b60405161027f9190611db8565b60405180910390f35b6102a2600480360381019061029d9190611e31565b6106bb565b005b6102be60048036038101906102b99190611e31565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611d7c565b610827565b6040516102f19190611ed0565b60405180910390f35b610314600480360381019061030f9190611d7c565b610867565b6040516103249493929190611f13565b60405180910390f35b6103356108d7565b6040516103429190611cef565b60405180910390f35b61036560048036038101906103609190611f58565b6108ee565b005b610381600480360381019061037c9190611fb1565b610908565b005b61038b610922565b6040516103989190611fff565b60405180910390f35b6103bb60048036038101906103b69190611e31565b610946565b6040516103c89190611cef565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061201a565b60405180910390f35b6104016109e6565b60405161040e919061201a565b60405180910390f35b610431600480360381019061042c9190611e31565b6109f5565b60405161043e9190611cef565b60405180910390f35b61044f610a5f565b60405161045d929190612035565b60405180910390f35b61046e610abf565b60405161047b9190611db8565b60405180910390f35b61049e60048036038101906104999190611d7c565b610ac6565b6040516104ab919061205e565b60405180910390f35b6104ce60048036038101906104c991906120b7565b610ae6565b005b6104ea60048036038101906104e591906120f7565b610b09565b005b6104f4610b17565b6040516105019190611db8565b60405180910390f35b610512610b3b565b60405161051f9190611d2b565b60405180910390f35b610530610ba9565b005b61053a610c3f565b604051610548929190612137565b60405180910390f35b61056b60048036038101906105669190611d7c565b610c82565b604051610578919061201a565b60405180910390f35b61059b60048036038101906105969190611e31565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612160565b610d24565b005b6105cb610d3d565b6040516105d89190611db8565b60405180910390f35b6105e9610d61565b6040516105f69190611db8565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d2b565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061201a565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061201a565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b61101191906121e2565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d2b565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d91906121e2565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612035565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061201a565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611db8565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612231565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef600000000000000000000000000000000000000000000000000000000815260040161124392919061225e565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061201a565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d2b565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c492919061225e565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122cf565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b291906122f8565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061201a565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000818310611c405781611c42565b825b905092915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c8481611c4f565b8114611c8f57600080fd5b50565b600081359050611ca181611c7b565b92915050565b600060208284031215611cbd57611cbc611c4a565b5b6000611ccb84828501611c92565b91505092915050565b60008115159050919050565b611ce981611cd4565b82525050565b6000602082019050611d046000830184611ce0565b92915050565b600065ffffffffffff82169050919050565b611d2581611d0a565b82525050565b6000602082019050611d406000830184611d1c565b92915050565b6000819050919050565b611d5981611d46565b8114611d6457600080fd5b50565b600081359050611d7681611d50565b92915050565b600060208284031215611d9257611d91611c4a565b5b6000611da084828501611d67565b91505092915050565b611db281611d46565b82525050565b6000602082019050611dcd6000830184611da9565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dfe82611dd3565b9050919050565b611e0e81611df3565b8114611e1957600080fd5b50565b600081359050611e2b81611e05565b92915050565b60008060408385031215611e4857611e47611c4a565b5b6000611e5685828601611d67565b9250506020611e6785828601611e1c565b9150509250929050565b6000819050919050565b6000611e96611e91611e8c84611dd3565b611e71565b611dd3565b9050919050565b6000611ea882611e7b565b9050919050565b6000611eba82611e9d565b9050919050565b611eca81611eaf565b82525050565b6000602082019050611ee56000830184611ec1565b92915050565b611ef481611df3565b82525050565b6000819050919050565b611f0d81611efa565b82525050565b6000608082019050611f286000830187611eeb565b611f356020830186611ec1565b611f426040830185611f04565b611f4f6060830184611f04565b95945050505050565b600060208284031215611f6e57611f6d611c4a565b5b6000611f7c84828501611e1c565b91505092915050565b611f8e81611d0a565b8114611f9957600080fd5b50565b600081359050611fab81611f85565b92915050565b600060208284031215611fc757611fc6611c4a565b5b6000611fd584828501611f9c565b91505092915050565b6000611fe982611e9d565b9050919050565b611ff981611fde565b82525050565b60006020820190506120146000830184611ff0565b92915050565b600060208201905061202f6000830184611eeb565b92915050565b600060408201905061204a6000830185611d1c565b6120576020830184611d1c565b9392505050565b60006020820190506120736000830184611f04565b92915050565b600061208482611df3565b9050919050565b61209481612079565b811461209f57600080fd5b50565b6000813590506120b18161208b565b92915050565b600080604083850312156120ce576120cd611c4a565b5b60006120dc85828601611d67565b92505060206120ed858286016120a2565b9150509250929050565b6000806040838503121561210e5761210d611c4a565b5b600061211c85828601611e1c565b925050602061212d85828601611d67565b9150509250929050565b600060408201905061214c6000830185611eeb565b6121596020830184611d1c565b9392505050565b60008060006060848603121561217957612178611c4a565b5b600061218786828701611e1c565b935050602061219886828701611d67565b92505060406121a9868287016120a2565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121ed82611d0a565b91506121f883611d0a565b9250828201905065ffffffffffff811115612216576122156121b3565b5b92915050565b60008151905061222b81611e05565b92915050565b60006020828403121561224757612246611c4a565b5b60006122558482850161221c565b91505092915050565b60006040820190506122736000830185611eeb565b6122806020830184611da9565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122b96122b46122af84612287565b611e71565b612291565b9050919050565b6122c98161229e565b82525050565b60006040820190506122e460008301856122c0565b6122f16020830184611f04565b9392505050565b600061230382611d0a565b915061230e83611d0a565b9250828203905065ffffffffffff81111561232c5761232b6121b3565b5b9291505056fea264697066735822122045b9e71aa8dc2a139bb98a453175d418f82bc5b62b4236ce56fe6b30a9dfffc964736f6c634300081c00330000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SciRegistry#SciRegistry","networkInteractionId":1,"nonce":9,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"11595605"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"10958401"}},"hash":"0x6f2ce7d166d896c137fd5c950866e10b92022456e7fdf907f4eb1d1e7b4bc512"},"type":"TRANSACTION_SEND"} +{"futureId":"SciRegistry#SciRegistry","hash":"0x6f2ce7d166d896c137fd5c950866e10b92022456e7fdf907f4eb1d1e7b4bc512","networkInteractionId":1,"receipt":{"blockHash":"0x568148bae0014594f2394f66313656f7efef0f0932c7c6bd7ae06ba4b823f93c","blockNumber":6938266,"contractAddress":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","logs":[{"address":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","data":"0x","logIndex":89,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]},{"address":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","data":"0x","logIndex":90,"topics":["0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","0x0000000000000000000000000000000000000000000000000000000000000000","0x3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a7509"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SciRegistry#SciRegistry","result":{"address":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"args":[],"artifactId":"SciRegistry#SciRegistry","contractAddress":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","dependencies":["SciRegistry#SciRegistry"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","functionName":"REGISTRAR_MANAGER_ROLE","futureId":"SciRegistry#SciRegistry.REGISTRAR_MANAGER_ROLE","nameOrIndex":0,"strategy":"basic","strategyConfig":{},"type":"STATIC_CALL_EXECUTION_STATE_INITIALIZE"} +{"futureId":"SciRegistry#SciRegistry.REGISTRAR_MANAGER_ROLE","networkInteraction":{"data":"0xbe8cd266","from":"0x4430edfbb4777b3f8e5b951803657703039d688b","id":1,"to":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","type":"STATIC_CALL","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SciRegistry#SciRegistry.REGISTRAR_MANAGER_ROLE","networkInteractionId":1,"result":{"customErrorReported":false,"returnData":"0x3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a7509","success":true},"type":"STATIC_CALL_COMPLETE"} +{"futureId":"SciRegistry#SciRegistry.REGISTRAR_MANAGER_ROLE","result":{"type":"SUCCESS","value":"0x3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a7509"},"type":"STATIC_CALL_EXECUTION_STATE_COMPLETE"} +{"args":["0x3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a7509","0x4430edfbb4777b3f8e5b951803657703039d688b"],"artifactId":"SciRegistry#SciRegistry","contractAddress":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","dependencies":["SciRegistry#SciRegistry","SciRegistry#SciRegistry.REGISTRAR_MANAGER_ROLE"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","functionName":"grantRole","futureId":"SciRegistry#SciRegistry.grantRole","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"SciRegistry#SciRegistry.grantRole","networkInteraction":{"data":"0x2f2ff15d3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a75090000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","id":1,"to":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SciRegistry#SciRegistry.grantRole","networkInteractionId":1,"nonce":10,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"11656357"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"10958401"}},"hash":"0x6637ab9284df657e8f074b616fbd3a13ddb107f0be8ddc378fa81d078909c524"},"type":"TRANSACTION_SEND"} +{"futureId":"SciRegistry#SciRegistry.grantRole","hash":"0x6637ab9284df657e8f074b616fbd3a13ddb107f0be8ddc378fa81d078909c524","networkInteractionId":1,"receipt":{"blockHash":"0xb4db13720718de60258ea13efcfd33d202eef2c39de690f4a69b377c8e3c1245","blockNumber":6938272,"logs":[{"address":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","data":"0x","logIndex":63,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a7509","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SciRegistry#SciRegistry.grantRole","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"artifactId":"PublicListVerifier#PublicListVerifier","constructorArgs":["0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A"],"contractName":"PublicListVerifier","dependencies":["SciRegistry#SciRegistry"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","futureId":"PublicListVerifier#PublicListVerifier","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"PublicListVerifier#PublicListVerifier","networkInteraction":{"data":"0x60a060405234801561001057600080fd5b50604051610e03380380610e03833981810160405281019061003291906100d1565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506100fe565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061009e82610073565b9050919050565b6100ae81610093565b81146100b957600080fd5b50565b6000815190506100cb816100a5565b92915050565b6000602082840312156100e7576100e661006e565b5b60006100f5848285016100bc565b91505092915050565b608051610ce36101206000396000818161045301526106980152610ce36000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063046852d01461005c5780630f59a4981461008c57806379fb477a146100a85780637b103999146100d857806382ef31d9146100f6575b600080fd5b61007660048036038101906100719190610862565b610112565b60405161008391906108c4565b60405180910390f35b6100a660048036038101906100a1919061099a565b61022a565b005b6100c260048036038101906100bd9190610862565b61041f565b6040516100cf91906108c4565b60405180910390f35b6100e0610451565b6040516100ed9190610a8e565b60405180910390f35b610110600480360381019061010b919061099a565b610475565b005b60008060008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600081146101895780915050610223565b60008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020019081526020016000205490506000811461021d5780915050610223565b60009150505b9392505050565b610232610677565b8561023d828261067f565b60005b868690508110156104155760005b85858381811061026157610260610aa9565b5b90506020028101906102739190610ae7565b905081101561040957426000808b815260200190815260200160002060008a8a868181106102a4576102a3610aa9565b5b90506020020160208101906102b99190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061030857610307610aa9565b5b905060200281019061031a9190610ae7565b8581811061032b5761032a610aa9565b5b9050602002013581526020019081526020016000208190555087878381811061035757610356610aa9565b5b905060200201602081019061036c9190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1686868481811061039557610394610aa9565b5b90506020028101906103a79190610ae7565b838181106103b8576103b7610aa9565b5b905060200201358a7fc177490b924686771eb8a2b77bee53e5913e624c90b60207d396f81cfe6e7cd06103e9610677565b6040516103f69190610b86565b60405180910390a480600101905061024e565b50806001019050610240565b5050505050505050565b600060205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b61047d610677565b85610488828261067f565b60005b8686905081101561066d5760005b8585838181106104ac576104ab610aa9565b5b90506020028101906104be9190610ae7565b90508110156106615760008060008b815260200190815260200160002060008a8a868181106104f0576104ef610aa9565b5b90506020020160208101906105059190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061055457610553610aa9565b5b90506020028101906105669190610ae7565b8581811061057757610576610aa9565b5b905060200201358152602001908152602001600020819055508787838181106105a3576105a2610aa9565b5b90506020020160208101906105b89190610b4a565b73ffffffffffffffffffffffffffffffffffffffff168686848181106105e1576105e0610aa9565b5b90506020028101906105f39190610ae7565b8381811061060457610603610aa9565b5b905060200201358a7f36be184145fbd476ffe0597f987f89d7490b926e334512a42de54749eee25e75610635610677565b6040516106429190610b86565b60405180910390a48060010190508061065a90610bd0565b9050610499565b5080600101905061048b565b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016106ef9190610c27565b602060405180830381865afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190610c57565b73ffffffffffffffffffffffffffffffffffffffff161461078a5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401610781929190610c84565b60405180910390fd5b5050565b600080fd5b600080fd5b6000819050919050565b6107ab81610798565b81146107b657600080fd5b50565b6000813590506107c8816107a2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107f9826107ce565b9050919050565b610809816107ee565b811461081457600080fd5b50565b60008135905061082681610800565b92915050565b6000819050919050565b61083f8161082c565b811461084a57600080fd5b50565b60008135905061085c81610836565b92915050565b60008060006060848603121561087b5761087a61078e565b5b6000610889868287016107b9565b935050602061089a86828701610817565b92505060406108ab8682870161084d565b9150509250925092565b6108be8161082c565b82525050565b60006020820190506108d960008301846108b5565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610904576109036108df565b5b8235905067ffffffffffffffff811115610921576109206108e4565b5b60208301915083602082028301111561093d5761093c6108e9565b5b9250929050565b60008083601f84011261095a576109596108df565b5b8235905067ffffffffffffffff811115610977576109766108e4565b5b602083019150836020820283011115610993576109926108e9565b5b9250929050565b6000806000806000606086880312156109b6576109b561078e565b5b60006109c4888289016107b9565b955050602086013567ffffffffffffffff8111156109e5576109e4610793565b5b6109f1888289016108ee565b9450945050604086013567ffffffffffffffff811115610a1457610a13610793565b5b610a2088828901610944565b92509250509295509295909350565b6000819050919050565b6000610a54610a4f610a4a846107ce565b610a2f565b6107ce565b9050919050565b6000610a6682610a39565b9050919050565b6000610a7882610a5b565b9050919050565b610a8881610a6d565b82525050565b6000602082019050610aa36000830184610a7f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112610b0457610b03610ad8565b5b80840192508235915067ffffffffffffffff821115610b2657610b25610add565b5b602083019250602082023603831315610b4257610b41610ae2565b5b509250929050565b600060208284031215610b6057610b5f61078e565b5b6000610b6e84828501610817565b91505092915050565b610b80816107ee565b82525050565b6000602082019050610b9b6000830184610b77565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bdb8261082c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c0d57610c0c610ba1565b5b600182019050919050565b610c2181610798565b82525050565b6000602082019050610c3c6000830184610c18565b92915050565b600081519050610c5181610800565b92915050565b600060208284031215610c6d57610c6c61078e565b5b6000610c7b84828501610c42565b91505092915050565b6000604082019050610c996000830185610b77565b610ca66020830184610c18565b939250505056fea2646970667358221220e19e189f4f848086a4754a9206058bc9b93d6e078c6e1ebe9364c03045d6085764736f6c634300081c0033000000000000000000000000add75aecd98f0adad899729c88bfed4f8951c02a","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"PublicListVerifier#PublicListVerifier","networkInteractionId":1,"nonce":11,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"11576429"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"10958401"}},"hash":"0x7221296b45cde435186a3d638af1f5a5db3c44123172d2fa5e80273d7fcd42c3"},"type":"TRANSACTION_SEND"} +{"futureId":"PublicListVerifier#PublicListVerifier","hash":"0x7221296b45cde435186a3d638af1f5a5db3c44123172d2fa5e80273d7fcd42c3","networkInteractionId":1,"receipt":{"blockHash":"0xb60d45c3558300227bbea154139b357c0595ec4d68cab9cec100d1af6f278c38","blockNumber":6938280,"contractAddress":"0xd58d48185146343720df2C26FcD8D3C3734e22cf","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"PublicListVerifier#PublicListVerifier","result":{"address":"0xd58d48185146343720df2C26FcD8D3C3734e22cf","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"SciRegstrar#SciRegistrar","constructorArgs":["0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A",0],"contractName":"SciRegistrar","dependencies":["SciRegistry#SciRegistry"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","futureId":"SciRegstrar#SciRegistrar","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"SciRegstrar#SciRegistrar","networkInteraction":{"data":"0x60a060405234801561001057600080fd5b50604051611f61380380611f618339818101604052810190610032919061043c565b8061004161012960201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b35760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100aa919061048b565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100eb6000801b8261013160201b60201c565b5050508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506104a6565b600033905090565b60008060001b83036101f257600073ffffffffffffffffffffffffffffffffffffffff1661016361020a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146101b0576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610202838361023460201b60201c565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610246838361033160201b60201c565b61032657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102c361012960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061032b565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103cb826103a0565b9050919050565b6103db816103c0565b81146103e657600080fd5b50565b6000815190506103f8816103d2565b92915050565b600065ffffffffffff82169050919050565b610419816103fe565b811461042457600080fd5b50565b60008151905061043681610410565b92915050565b600080604083850312156104535761045261039b565b5b6000610461858286016103e9565b925050602061047285828601610427565b9150509250929050565b610485816103c0565b82525050565b60006020820190506104a0600083018461047c565b92915050565b608051611a926104cf6000396000818161063e0152818161079601526109fb0152611a926000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c9190611497565b6103c9565b60405161016e91906114df565b60405180910390f35b61017f610443565b60405161018c919061151b565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b4919061156c565b610466565b6040516101c691906115a8565b60405180910390f35b6101d7610485565b6040516101e491906115a8565b60405180910390f35b61020760048036038101906102029190611621565b6104a9565b005b610223600480360381019061021e9190611621565b6104f3565b005b61023f600480360381019061023a9190611661565b610608565b005b61025b600480360381019061025691906116ba565b610622565b005b61026561063c565b6040516102729190611746565b60405180910390f35b610283610660565b6040516102909190611770565b60405180910390f35b6102a161068a565b6040516102ae9190611770565b60405180910390f35b6102d160048036038101906102cc9190611621565b610699565b6040516102de91906114df565b60405180910390f35b6102ef610703565b6040516102fd92919061178b565b60405180910390f35b61030e610763565b60405161031b91906115a8565b60405180910390f35b61033e600480360381019061033991906117b4565b61076a565b005b610348610826565b604051610355919061151b565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e9291906117f4565b60405180910390f35b6103a1600480360381019061039c9190611621565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061185b565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061151b565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118ae565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611770565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a56939291906118f8565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c919061195e565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061151b565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c88919061195e565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc592919061178b565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061151b565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118ae565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b9291906119f9565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a22565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60008183106114305781611432565b825b905092915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114748161143f565b811461147f57600080fd5b50565b6000813590506114918161146b565b92915050565b6000602082840312156114ad576114ac61143a565b5b60006114bb84828501611482565b91505092915050565b60008115159050919050565b6114d9816114c4565b82525050565b60006020820190506114f460008301846114d0565b92915050565b600065ffffffffffff82169050919050565b611515816114fa565b82525050565b6000602082019050611530600083018461150c565b92915050565b6000819050919050565b61154981611536565b811461155457600080fd5b50565b60008135905061156681611540565b92915050565b6000602082840312156115825761158161143a565b5b600061159084828501611557565b91505092915050565b6115a281611536565b82525050565b60006020820190506115bd6000830184611599565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115ee826115c3565b9050919050565b6115fe816115e3565b811461160957600080fd5b50565b60008135905061161b816115f5565b92915050565b600080604083850312156116385761163761143a565b5b600061164685828601611557565b92505060206116578582860161160c565b9150509250929050565b6000602082840312156116775761167661143a565b5b60006116858482850161160c565b91505092915050565b611697816114fa565b81146116a257600080fd5b50565b6000813590506116b48161168e565b92915050565b6000602082840312156116d0576116cf61143a565b5b60006116de848285016116a5565b91505092915050565b6000819050919050565b600061170c611707611702846115c3565b6116e7565b6115c3565b9050919050565b600061171e826116f1565b9050919050565b600061173082611713565b9050919050565b61174081611725565b82525050565b600060208201905061175b6000830184611737565b92915050565b61176a816115e3565b82525050565b60006020820190506117856000830184611761565b92915050565b60006040820190506117a0600083018561150c565b6117ad602083018461150c565b9392505050565b600080604083850312156117cb576117ca61143a565b5b60006117d98582860161160c565b92505060206117ea85828601611557565b9150509250929050565b60006040820190506118096000830185611761565b611816602083018461150c565b9392505050565b6000611828826115e3565b9050919050565b6118388161181d565b811461184357600080fd5b50565b6000813590506118558161182f565b92915050565b6000806000606084860312156118745761187361143a565b5b60006118828682870161160c565b935050602061189386828701611557565b92505060406118a486828701611846565b9150509250925092565b60006040820190506118c36000830185611761565b6118d06020830184611599565b9392505050565b60006118e282611713565b9050919050565b6118f2816118d7565b82525050565b600060608201905061190d6000830186611761565b61191a6020830185611599565b61192760408301846118e9565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611969826114fa565b9150611974836114fa565b9250828201905065ffffffffffff8111156119925761199161192f565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ca6119c56119c084611998565b6116e7565b6119a2565b9050919050565b6119da816119af565b82525050565b6000819050919050565b6119f3816119e0565b82525050565b6000604082019050611a0e60008301856119d1565b611a1b60208301846119ea565b9392505050565b6000611a2d826114fa565b9150611a38836114fa565b9250828203905065ffffffffffff811115611a5657611a5561192f565b5b9291505056fea2646970667358221220784af17183a32592891679a3d8a65de9c8f4edc26375d777c51a2a5c8404168464736f6c634300081c0033000000000000000000000000add75aecd98f0adad899729c88bfed4f8951c02a0000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SciRegstrar#SciRegistrar","networkInteractionId":1,"nonce":12,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"11617037"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"10958401"}},"hash":"0x0fbe289f2d0d81acbddfdb8a89992b33d0b1c6dbbeb745b4edcdf028749648a1"},"type":"TRANSACTION_SEND"} +{"args":[],"artifactId":"SciRegistry#SciRegistry","contractAddress":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","dependencies":["SciRegistry#SciRegistry"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","functionName":"REGISTRAR_ROLE","futureId":"SciRegstrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","nameOrIndex":0,"strategy":"basic","strategyConfig":{},"type":"STATIC_CALL_EXECUTION_STATE_INITIALIZE"} +{"futureId":"SciRegstrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","networkInteraction":{"data":"0xf68e9553","from":"0x4430edfbb4777b3f8e5b951803657703039d688b","id":1,"to":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","type":"STATIC_CALL","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SciRegstrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","networkInteractionId":1,"result":{"customErrorReported":false,"returnData":"0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","success":true},"type":"STATIC_CALL_COMPLETE"} +{"futureId":"SciRegstrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","result":{"type":"SUCCESS","value":"0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238"},"type":"STATIC_CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"SciRegstrar#SciRegistrar","hash":"0x0fbe289f2d0d81acbddfdb8a89992b33d0b1c6dbbeb745b4edcdf028749648a1","networkInteractionId":1,"receipt":{"blockHash":"0x7435ad6ea8d5dfa66091ca5608b0b77722a3bff6d1ed891d1029293e4707bedf","blockNumber":6938291,"contractAddress":"0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5","logs":[{"address":"0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5","data":"0x","logIndex":67,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SciRegstrar#SciRegistrar","result":{"address":"0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"args":[],"artifactId":"SciRegstrar#SciRegistrar","contractAddress":"0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5","dependencies":["SciRegstrar#SciRegistrar"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","functionName":"REGISTER_DOMAIN_ROLE","futureId":"SciRegstrar#SciRegistrar.REGISTER_DOMAIN_ROLE","nameOrIndex":0,"strategy":"basic","strategyConfig":{},"type":"STATIC_CALL_EXECUTION_STATE_INITIALIZE"} +{"futureId":"SciRegstrar#SciRegistrar.REGISTER_DOMAIN_ROLE","networkInteraction":{"data":"0x2a3fea62","from":"0x4430edfbb4777b3f8e5b951803657703039d688b","id":1,"to":"0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5","type":"STATIC_CALL","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SciRegstrar#SciRegistrar.REGISTER_DOMAIN_ROLE","networkInteractionId":1,"result":{"customErrorReported":false,"returnData":"0x272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68","success":true},"type":"STATIC_CALL_COMPLETE"} +{"futureId":"SciRegstrar#SciRegistrar.REGISTER_DOMAIN_ROLE","result":{"type":"SUCCESS","value":"0x272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68"},"type":"STATIC_CALL_EXECUTION_STATE_COMPLETE"} +{"args":["0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5"],"artifactId":"SciRegistry#SciRegistry","contractAddress":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","dependencies":["SciRegistry#SciRegistry","SciRegstrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","SciRegstrar#SciRegistrar"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","functionName":"grantRole","futureId":"SciRegstrar#SciRegistry~SciRegistry.grantRole","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"SciRegstrar#SciRegistry~SciRegistry.grantRole","networkInteraction":{"data":"0x2f2ff15dedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923800000000000000000000000083223d23e769cfe4b8bec8a32eb148d0dbec4de5","id":1,"to":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SciRegstrar#SciRegistry~SciRegistry.grantRole","networkInteractionId":1,"nonce":13,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"11463445"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"10958401"}},"hash":"0x0bcfa884308708a810f7954ee9debaeb17896aba354d46db57046ad682c6036e"},"type":"TRANSACTION_SEND"} +{"futureId":"SciRegstrar#SciRegistry~SciRegistry.grantRole","hash":"0x0bcfa884308708a810f7954ee9debaeb17896aba354d46db57046ad682c6036e","networkInteractionId":1,"receipt":{"blockHash":"0x9adabae424681c4445622ea89cd900baa8b6186750cca717c44a14a9370f9b1e","blockNumber":6938296,"logs":[{"address":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","data":"0x","logIndex":123,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","0x00000000000000000000000083223d23e769cfe4b8bec8a32eb148d0dbec4de5","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SciRegstrar#SciRegistry~SciRegistry.grantRole","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"args":["0x272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68","0x4430edfbb4777b3f8e5b951803657703039d688b"],"artifactId":"SciRegstrar#SciRegistrar","contractAddress":"0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5","dependencies":["SciRegstrar#SciRegistrar","SciRegstrar#SciRegistrar.REGISTER_DOMAIN_ROLE"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","functionName":"grantRole","futureId":"SciRegstrar#SciRegistrar.grantRole","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"SciRegstrar#SciRegistrar.grantRole","networkInteraction":{"data":"0x2f2ff15d272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c680000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","id":1,"to":"0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SciRegstrar#SciRegistrar.grantRole","networkInteractionId":1,"nonce":14,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"11444347"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"10958401"}},"hash":"0xecf4062bdc2235c0de27db5d9b9625c86ba8e763e0adda1ee4dcdea6e86f5f5e"},"type":"TRANSACTION_SEND"} +{"futureId":"SciRegstrar#SciRegistrar.grantRole","hash":"0xecf4062bdc2235c0de27db5d9b9625c86ba8e763e0adda1ee4dcdea6e86f5f5e","networkInteractionId":1,"receipt":{"blockHash":"0x738df4bb8eec6d9ed0f325ef75d86fe29b3c142df47638796400bae9e299dc45","blockNumber":6938302,"logs":[{"address":"0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5","data":"0x","logIndex":54,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SciRegstrar#SciRegistrar.grantRole","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"artifactId":"ProxyModule#SCI","constructorArgs":[],"contractName":"SCI","dependencies":[],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","futureId":"ProxyModule#SCI","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"ProxyModule#SCI","networkInteraction":{"data":"0x6080604052348015600f57600080fd5b5061142d8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220821405c484cd8f087bce149e0b629c117ae2f5f6ce02e02cc9ceab8cc5f1b3a064736f6c634300081c0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"ProxyModule#SCI","networkInteractionId":1,"nonce":15,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"11479871"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"10958401"}},"hash":"0xd73e1e529f6a9db27072881ab8ccc0aa9e6177ba96820c7b5882e5bab34be66c"},"type":"TRANSACTION_SEND"} +{"futureId":"ProxyModule#SCI","hash":"0xd73e1e529f6a9db27072881ab8ccc0aa9e6177ba96820c7b5882e5bab34be66c","networkInteractionId":1,"receipt":{"blockHash":"0x350198ad40cba981baae444d1c3571907f4431e27ba04a6128daac32045fd129","blockNumber":6938314,"contractAddress":"0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"ProxyModule#SCI","result":{"address":"0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"args":["0x4430edfbb4777b3f8e5b951803657703039d688b","0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A"],"artifactId":"ProxyModule#SCI","dependencies":["ProxyModule#SCI","SciRegistry#SciRegistry"],"functionName":"initialize","futureId":"ProxyModule#encodeFunctionCall(ProxyModule#SCI.initialize)","result":"0x485cc9550000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b000000000000000000000000add75aecd98f0adad899729c88bfed4f8951c02a","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"ProxyModule#TransparentUpgradeableProxy","constructorArgs":["0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4","0x4430edfbb4777b3f8e5b951803657703039d688b","0x485cc9550000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b000000000000000000000000add75aecd98f0adad899729c88bfed4f8951c02a"],"contractName":"TransparentUpgradeableProxy","dependencies":["ProxyModule#SCI","ProxyModule#encodeFunctionCall(ProxyModule#SCI.initialize)"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","futureId":"ProxyModule#TransparentUpgradeableProxy","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"ProxyModule#TransparentUpgradeableProxy","networkInteraction":{"data":"0x60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea2646970667358221220822de418beb5a325cfb8f4bb063c678ed495b4367e9e78b179c23a652dfdfe7064736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea2646970667358221220395f28e781612bf5bf29aa036b240c8e269d4b342adf86c7c0946886c542932f64736f6c634300081c0033000000000000000000000000c29e83afee01bdcca7f69fe1dfd7a61954dce4d40000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044485cc9550000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b000000000000000000000000add75aecd98f0adad899729c88bfed4f8951c02a00000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"ProxyModule#TransparentUpgradeableProxy","networkInteractionId":1,"nonce":16,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"11372441"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"10958401"}},"hash":"0x465e5c6f1bf4fa04714358e67fc78fad2f1362db3b48a3b5b8e8d5ff93572638"},"type":"TRANSACTION_SEND"} +{"futureId":"ProxyModule#TransparentUpgradeableProxy","hash":"0x465e5c6f1bf4fa04714358e67fc78fad2f1362db3b48a3b5b8e8d5ff93572638","networkInteractionId":1,"receipt":{"blockHash":"0xe1b95f440b89b0b8b0ababcbf0f209df2c7a1132c3cf6d859adf73627632633f","blockNumber":6938319,"contractAddress":"0x1694F779f28E3B3ff409d62c9d9d7042Ff406aEC","logs":[{"address":"0x1694F779f28E3B3ff409d62c9d9d7042Ff406aEC","data":"0x","logIndex":70,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000c29e83afee01bdcca7f69fe1dfd7a61954dce4d4"]},{"address":"0x1694F779f28E3B3ff409d62c9d9d7042Ff406aEC","data":"0x","logIndex":71,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]},{"address":"0x1694F779f28E3B3ff409d62c9d9d7042Ff406aEC","data":"0x","logIndex":72,"topics":["0x363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f5","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000add75aecd98f0adad899729c88bfed4f8951c02a"]},{"address":"0x1694F779f28E3B3ff409d62c9d9d7042Ff406aEC","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":73,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]},{"address":"0x9007eD4FFa791BB63662D6E894A97e163e4C2A23","data":"0x","logIndex":74,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]},{"address":"0x1694F779f28E3B3ff409d62c9d9d7042Ff406aEC","data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009007ed4ffa791bb63662d6e894a97e163e4c2a23","logIndex":75,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"ProxyModule#TransparentUpgradeableProxy","result":{"address":"0x1694F779f28E3B3ff409d62c9d9d7042Ff406aEC","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"ProxyModule#TransparentUpgradeableProxy","dependencies":["ProxyModule#TransparentUpgradeableProxy"],"emitterAddress":"0x1694F779f28E3B3ff409d62c9d9d7042Ff406aEC","eventIndex":0,"eventName":"AdminChanged","futureId":"ProxyModule#TransparentUpgradeableProxy.AdminChanged.newAdmin.0","nameOrIndex":"newAdmin","result":"0x9007eD4FFa791BB63662D6E894A97e163e4C2A23","strategy":"basic","strategyConfig":{},"txToReadFrom":"0x465e5c6f1bf4fa04714358e67fc78fad2f1362db3b48a3b5b8e8d5ff93572638","type":"READ_EVENT_ARGUMENT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"ProxyModule#ProxyAdmin","contractAddress":"0x9007eD4FFa791BB63662D6E894A97e163e4C2A23","contractName":"ProxyAdmin","dependencies":["ProxyModule#TransparentUpgradeableProxy.AdminChanged.newAdmin.0"],"futureId":"ProxyModule#ProxyAdmin","futureType":"NAMED_ARTIFACT_CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"SciModule#SCI","contractAddress":"0x1694F779f28E3B3ff409d62c9d9d7042Ff406aEC","contractName":"SCI","dependencies":["ProxyModule#TransparentUpgradeableProxy"],"futureId":"SciModule#SCI","futureType":"NAMED_ARTIFACT_CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} \ No newline at end of file diff --git a/ignition/modules/ProtocolModule.ts b/ignition/modules/ProtocolModule.ts new file mode 100644 index 0000000..1f2a373 --- /dev/null +++ b/ignition/modules/ProtocolModule.ts @@ -0,0 +1,20 @@ +import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; +import sciRegistryModule from "./registry/SciRegistryModule"; +import ensRegistrarModule from "./registrars/EnsRegistrarModule"; +import publicListVerifierModule from "./verifiers/PublicListVerifierModule"; +import sciModule from "./sci/SciModule"; + +/** + * This is the second module that will be run, and it is also the only module exported from this file. + * It creates a contract instance for the Sci contract using the proxy from the previous module. + */ +export const ProtocolModule = buildModule('ProtocolModule', (m) => { + m.useModule(sciRegistryModule); + m.useModule(ensRegistrarModule); + m.useModule(sciRegistryModule); + m.useModule(publicListVerifierModule); + m.useModule(sciModule); + return {}; +}); + +export default ProtocolModule; diff --git a/ignition/modules/registrars/EnsRegistrarModule.ts b/ignition/modules/registrars/EnsRegistrarModule.ts new file mode 100644 index 0000000..d87170e --- /dev/null +++ b/ignition/modules/registrars/EnsRegistrarModule.ts @@ -0,0 +1,23 @@ +import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; +import { SciRegistryModule } from '../registry/SciRegistryModule'; +import { EnsRegistrar, SciRegistry } from '../../../types'; +import { IgnitionModuleBuilder } from '@nomicfoundation/ignition-core'; + +export const EnsRegistrarModule = buildModule('EnsRegistrar', (m: IgnitionModuleBuilder) => { + const { sciRegistry } = m.useModule(SciRegistryModule); + + const ensRegistry = m.getParameter('ensRegistryAddress'); + + const ensRegistrar = m.contract('EnsRegistrar', [ensRegistry, sciRegistry]); + + m.call(sciRegistry, 'grantRole', [m.staticCall(sciRegistry, 'REGISTRAR_ROLE'), ensRegistrar]); + + return { ensRegistrar, sciRegistry }; +}); + +export type EnsRegistrarModuleReturnType = Promise<{ + ensRegistrar: EnsRegistrar; + sciRegistry: SciRegistry; +}>; + +export default EnsRegistrarModule; diff --git a/ignition/modules/registrars/SciRegistrarModule.ts b/ignition/modules/registrars/SciRegistrarModule.ts new file mode 100644 index 0000000..e1b5c5e --- /dev/null +++ b/ignition/modules/registrars/SciRegistrarModule.ts @@ -0,0 +1,26 @@ +import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; +import { SciRegistryModule } from '../registry/SciRegistryModule'; +import { SciRegistrar, SciRegistry } from '../../../types'; +import { IgnitionModuleBuilder } from '@nomicfoundation/ignition-core'; + +export const SciRegistrarModule = buildModule('SciRegstrar', (m: IgnitionModuleBuilder) => { + const { sciRegistry } = m.useModule(SciRegistryModule); + + const sciRegistrar = m.contract('SciRegistrar', [sciRegistry, 0]); + + m.call(sciRegistry, 'grantRole', [m.staticCall(sciRegistry, 'REGISTRAR_ROLE'), sciRegistrar]); + + m.call(sciRegistrar, 'grantRole', [ + m.staticCall(sciRegistrar, 'REGISTER_DOMAIN_ROLE'), + m.getAccount(0), + ]); + + return { sciRegistrar, sciRegistry }; +}); + +export type SciRegistrarModuleReturnType = Promise<{ + sciRegistrar: SciRegistrar; + sciRegistry: SciRegistry; +}>; + +export default SciRegistrarModule; diff --git a/ignition/modules/registry/SciRegistryModule.ts b/ignition/modules/registry/SciRegistryModule.ts new file mode 100644 index 0000000..ec5c767 --- /dev/null +++ b/ignition/modules/registry/SciRegistryModule.ts @@ -0,0 +1,18 @@ +import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; +import { SciRegistry } from '../../../types'; +import { IgnitionModuleBuilder } from '@nomicfoundation/ignition-core'; + +export const SciRegistryModule = buildModule('SciRegistry', (m: IgnitionModuleBuilder) => { + const sciRegistry = m.contract('SciRegistry', [0]); + + m.call(sciRegistry, 'grantRole', [ + m.staticCall(sciRegistry, 'REGISTRAR_MANAGER_ROLE'), + m.getAccount(0), + ]); + + return { sciRegistry }; +}); + +export type SciRegistryModuleReturnType = Promise<{ sciRegistry: SciRegistry }>; + +export default SciRegistryModule; diff --git a/ignition/modules/sci/SciModule.ts b/ignition/modules/sci/SciModule.ts new file mode 100644 index 0000000..4b950b3 --- /dev/null +++ b/ignition/modules/sci/SciModule.ts @@ -0,0 +1,70 @@ +import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; +import SciRegistryModule from '../registry/SciRegistryModule'; +import { Proxy, ProxyAdmin, SCI } from '../../../types'; +import { IgnitionModuleBuilder } from '@nomicfoundation/ignition-core'; + +// This has been adapted from +// https://github.com/NomicFoundation/hardhat-ignition/blob/development/examples/upgradeable/ignition/modules/ProxyModule.js + +/** + * This is the first module that will be run. It deploys the proxy and the + * proxy admin, and returns them so that they can be used by other modules. + */ +const proxyModule = buildModule('ProxyModule', (m: IgnitionModuleBuilder) => { + const { sciRegistry } = m.useModule(SciRegistryModule); + + // This address is the owner of the ProxyAdmin contract, + // so it will be the only account that can upgrade the proxy when needed. + const proxyAdminOwner = m.getAccount(0); + + // This is our contract that will be proxied. + // We will upgrade this contract with a new version later. + const sci = m.contract('SCI'); + + const encodedFunctionCall = m.encodeFunctionCall(sci, 'initialize', [ + proxyAdminOwner, + sciRegistry, + ]); + + // The TransparentUpgradeableProxy contract creates the ProxyAdmin within its constructor. + // To read more about how this proxy is implemented, you can view the source code and comments here: + // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v5.0.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol + const proxy = m.contract('TransparentUpgradeableProxy', [ + sci, + proxyAdminOwner, + encodedFunctionCall, + ]); + + // We need to get the address of the ProxyAdmin contract that was created by the TransparentUpgradeableProxy + // so that we can use it to upgrade the proxy later. + const proxyAdminAddress = m.readEventArgument(proxy, 'AdminChanged', 'newAdmin'); + + // Here we use m.contractAt(...) to create a contract instance for the ProxyAdmin that we can interact with later to upgrade the proxy. + const proxyAdmin = m.contractAt('ProxyAdmin', proxyAdminAddress); + + // Return the proxy and proxy admin so that they can be used by other modules. + return { proxy, proxyAdmin }; +}); + +/** + * This is the second module that will be run, and it is also the only module exported from this file. + * It creates a contract instance for the Sci contract using the proxy from the previous module. + */ +export const SciModule = buildModule('SciModule', (m) => { + // Get the proxy and proxy admin from the previous module. + const { proxy, proxyAdmin } = m.useModule(proxyModule); + + // Here we're using m.contractAt(...) a bit differently than we did above. + // While we're still using it to create a contract instance, we're now telling Hardhat Ignition + // to treat the contract at the proxy address as an instance of the Sci contract. + // This allows us to interact with the underlying Sci contract via the proxy from within tests and scripts. + const sci = m.contractAt('SCI', proxy); + + // Return the contract instance, along with the original proxy and proxyAdmin contracts + // so that they can be used by other modules, or in tests and scripts. + return { sci, proxy, proxyAdmin }; +}); + +export type SciModuleReturnType = Promise<{ sci: SCI; proxy: Proxy; proxyAdmin: ProxyAdmin }>; + +export default SciModule; diff --git a/ignition/modules/sci/SciUpgradeModule.ts b/ignition/modules/sci/SciUpgradeModule.ts new file mode 100644 index 0000000..07173d3 --- /dev/null +++ b/ignition/modules/sci/SciUpgradeModule.ts @@ -0,0 +1,51 @@ +import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; +import SciModule from './SciModule'; +import { IgnitionModuleBuilder } from '@nomicfoundation/ignition-core'; + +const SCI_NEW_VERSION_CONTRACT_NAME = 'SCI'; + +/** + * This module upgrades the proxy to a new version of the Sci contract. + */ +const upgradeModule = buildModule('UpgradeModule', (m: IgnitionModuleBuilder) => { + // Make sure we're using the account that owns the ProxyAdmin contract. + const proxyAdminOwner = m.getAccount(0); + + // Get the proxy and proxy admin from the previous module. + const { proxyAdmin, proxy } = m.useModule(SciModule); + + // This is the new version of the Sci contract that we want to upgrade to. + const sci = m.contract(SCI_NEW_VERSION_CONTRACT_NAME); + + // Upgrade the proxy to the new version of the Sci contract. + // This function also accepts a data parameter, which accepts encoded function call data. + // We pass the encoded function call data we created above to the `upgradeAndCall` function + // so that the `setName` function is called on the new implementation contract after the upgrade. + m.call(proxyAdmin, 'upgradeAndCall', [proxy, sci, '0x'], { + from: proxyAdminOwner, + }); + + // Return the proxy and proxy admin so that they can be used by other modules. + return { proxyAdmin, proxy }; +}); + +/** + * This is the final module that will be run. + * + * It takes the proxy from the previous module and uses it to create a local contract instance + * for the SCI contract. This allows us to interact with the SCI contract via the proxy. + */ +export const SciUpgradeModule = buildModule('SciUpgradeModule', (m) => { + // Get the proxy from the previous module. + const { proxy, proxyAdmin } = m.useModule(upgradeModule); + + // Create a local contract instance for the SCI contract. + // This line tells Hardhat Ignition to use the SCI ABI for the contract at the proxy address. + // This allows us to call functions on the SCI contract via the proxy. + const sci = m.contractAt('SCI', proxy); + + // Return the contract instance so that it can be used by other modules or in tests. + return { sci, proxy, proxyAdmin }; +}); + +export default SciUpgradeModule; diff --git a/ignition/modules/verifiers/PublicListVerifierModule.ts b/ignition/modules/verifiers/PublicListVerifierModule.ts new file mode 100644 index 0000000..b6f96f9 --- /dev/null +++ b/ignition/modules/verifiers/PublicListVerifierModule.ts @@ -0,0 +1,23 @@ +import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; + +import { SciRegistryModule } from '../registry/SciRegistryModule'; +import { PublicListVerifier, SciRegistry } from '../../../types'; +import { IgnitionModuleBuilder } from '@nomicfoundation/ignition-core'; + +export const PublicListVerifierModule = buildModule( + 'PublicListVerifier', + (m: IgnitionModuleBuilder) => { + const { sciRegistry } = m.useModule(SciRegistryModule); + + const publicListVerifier = m.contract('PublicListVerifier', [sciRegistry]); + + return { publicListVerifier, sciRegistry }; + }, +); + +export type PublicListVerifierModuleReturnType = Promise<{ + publicListVerifier: PublicListVerifier; + sciRegistry: SciRegistry; +}>; + +export default PublicListVerifierModule; diff --git a/ignition/parameters/localhost.json5 b/ignition/parameters/localhost.json5 new file mode 100644 index 0000000..dc7b737 --- /dev/null +++ b/ignition/parameters/localhost.json5 @@ -0,0 +1,6 @@ +{ + "EnsRegistrar": { + // The address of the ENS Registry after running setup-localhost.ts in a new node + "ensRegistryAddress": "0x5FbDB2315678afecb367f032d93F642f64180aa3" + } +} diff --git a/ignition/parameters/sepolia.json5 b/ignition/parameters/sepolia.json5 new file mode 100644 index 0000000..c26d0a5 --- /dev/null +++ b/ignition/parameters/sepolia.json5 @@ -0,0 +1,6 @@ +{ + "EnsRegistrar": { + // https://docs.ens.domains/learn/deployments + "ensRegistryAddress": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" + } +} diff --git a/package.json b/package.json index a52e8df..2cd75a1 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,12 @@ { "name": "@secure-ci/core", "description": "Smart contracts for the Secure Contract Interaction protocol", - "version": "0.0.7", + "version": "0.0.12", "license": "AGPL-3.0", "files": [ - "/contracts/**/*.sol", - "/dist/types/**/*", - "/artifacts/**/*", - "/types/**/*.ts", - "/deployments/**/*" + "**/*" ], - "main": "dist/types/index.js", + "main": "types/index.js", "keywords": [ "solidity", "ethereum", @@ -23,42 +19,60 @@ "scripts": { "build": "tsc", "compile": "hardhat compile", - "clean": "rm -r artifacts cache types dist", - "test": "hardhat test" + "node": "hardhat node", + "clean": "rm -r artifacts cache types dist publish", + "test": "hardhat test", + "test:cov": "hardhat coverage", + "lint": "hardhat check; lint --fix .; prettier --write .", + "dev": "pnpm setup:localhost; pnpm deploy:localhost", + "setup:localhost": "hardhat run scripts/setup-localhost.ts --network localhost", + "deploy": "hardhat ignition deploy ignition/modules/ProtocolModule.ts", + "deploy:sepolia": "pnpm run deploy --verify --network sepolia --parameters ignition/parameters/sepolia.json5", + "deploy:localhost": "pnpm run deploy --network localhost --parameters ignition/parameters/sepolia.json5", + "prepare:package": "pnpm clean; pnpm compile; pnpm build; ts-node scripts/build-publish.ts", + "publish:package": "pnpm prepare:package; cd publish && npm publish" + }, + "engines": { + "node": "20", + "pnpm": "9" }, "dependencies": { - "@ensdomains/ens-contracts": "1.1.4", - "@openzeppelin/contracts": "^5.0.2", - "@openzeppelin/contracts-upgradeable": "^5.0.1", - "@openzeppelin/hardhat-upgrades": "^3.1.0", - "@walletconnect/ethereum-provider": "^2.13.1", - "ethers": "^6.8.1" + "@ensdomains/ens-contracts": "1.2.2", + "@openzeppelin/contracts": "5.1.0", + "@openzeppelin/contracts-upgradeable": "5.1.0", + "ethers": "6.13.4" }, "devDependencies": { - "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", - "@nomicfoundation/hardhat-ethers": "^3.0.0", - "@nomicfoundation/hardhat-network-helpers": "^1.0.9", - "@nomicfoundation/hardhat-toolbox": "^4.0.0", - "@nomicfoundation/hardhat-verify": "^2.0.0", - "@nomiclabs/hardhat-solhint": "^3.0.1", - "@safe-global/api-kit": "^2.4.1", - "@safe-global/protocol-kit": "^4.0.1", - "@typechain/ethers-v6": "^0.5.0", - "@typechain/hardhat": "^9.0.0", - "@types/chai": "^4.2.0", - "@types/mocha": ">=9.1.0", - "@types/node": ">=16.0.0", - "chai": "^4.2.0", - "dotenv": "^16.3.1", - "hardhat": "^2.22.5", - "hardhat-gas-reporter": "^1.0.8", - "prettier": "^3.1.0", - "prettier-plugin-solidity": "^1.2.0", - "solhint": "^4.0.0", - "solhint-plugin-prettier": "^0.1.0", - "solidity-coverage": "^0.8.0", - "ts-node": ">=8.0.0", - "typechain": "^8.3.0", - "typescript": ">=4.5.0" + "@ensdomains/ensjs": "4.0.1-alpha.0", + "@nomicfoundation/hardhat-ethers": "^3.0.8", + "@nomicfoundation/hardhat-ignition": "0.15.7", + "@nomicfoundation/hardhat-ignition-ethers": "0.15.7", + "@nomicfoundation/hardhat-ledger": "1.0.3", + "@nomicfoundation/hardhat-toolbox": "5.0.0", + "@nomicfoundation/ignition-core": "0.15.7", + "@nomiclabs/hardhat-solhint": "4.0.1", + "@openzeppelin/hardhat-upgrades": "3.5.0", + "@openzeppelin/upgrades-core": "1.40.0", + "@safe-global/api-kit": "2.5.3", + "@safe-global/protocol-kit": "5.0.3", + "@typechain/ethers-v6": "0.5.1", + "@typechain/hardhat": "9.1.0", + "@types/chai": "4.3.7", + "@types/fs-extra": "^11.0.4", + "@types/mocha": "10.0.9", + "@types/node": "22.8.0", + "chai": "4.3.7", + "dotenv": "16.4.5", + "fs-extra": "11.2.0", + "hardhat": "2.22.15", + "hardhat-gas-reporter": "2.2.1", + "prettier": "3.3.3", + "prettier-plugin-solidity": "1.4.1", + "solhint": "5.0.3", + "solhint-plugin-prettier": "0.1.0", + "solidity-coverage": "0.8.13", + "ts-node": "10.9.2", + "typechain": "8.3.2", + "typescript": "5.6.3" } } diff --git a/plugins/walletConnect/WalletConnectHardhatProvider.ts b/plugins/walletConnect/WalletConnectHardhatProvider.ts deleted file mode 100644 index 2452023..0000000 --- a/plugins/walletConnect/WalletConnectHardhatProvider.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ProviderWrapper } from 'hardhat/plugins'; -import { EIP1193Provider, RequestArguments } from 'hardhat/types'; -import EthereumProvider from '@walletconnect/ethereum-provider'; - -export class WalletConnectHardhatProvider extends ProviderWrapper { - constructor( - _wrappedProvider: EIP1193Provider, - private readonly wcProvider: EthereumProvider, - ) { - super(_wrappedProvider); - } - - async request(args: RequestArguments) { - switch (args.method) { - case 'eth_estimateGas': - case 'eth_sendTransaction': - case 'eth_sendRawTransaction': - case 'eth_accounts': - case 'personal_sign': - return this.wcProvider.request(args); - } - - return this._wrappedProvider.request(args); - } -} diff --git a/plugins/walletConnect/index.ts b/plugins/walletConnect/index.ts deleted file mode 100644 index b8ed53c..0000000 --- a/plugins/walletConnect/index.ts +++ /dev/null @@ -1,32 +0,0 @@ -import './WalletConnectHardhatProvider'; -import EthereumProvider from '@walletconnect/ethereum-provider'; -import { extendProvider } from 'hardhat/config'; -import { WalletConnectHardhatProvider } from './WalletConnectHardhatProvider'; -import { HttpNetworkUserConfig } from 'hardhat/types/config'; - -const BASE_QR_CODE_URL = 'https://kissapi-qrcode.vercel.app/api/qrcode?chl='; - -extendProvider(async (provider, config, network) => { - const networkConfig = config.networks[network] as HttpNetworkUserConfig; - if (!networkConfig || !networkConfig.useWalletConnect) { - return provider; - } - - const baseUrl = networkConfig.qrCodeUrl ?? BASE_QR_CODE_URL; - - const wcProvider = await EthereumProvider.init(config.walletConnect); - - // We fix the gas price to be set by the config or to a random high value - wcProvider.on('display_uri', (wcUri: string) => { - console.log(`${baseUrl}${encodeURIComponent(wcUri)}`); - console.log(wcUri); - }); - - wcProvider.on('connect', () => { - console.log('Connected'); - }); - - await wcProvider.connect(); - - return new WalletConnectHardhatProvider(provider, wcProvider); -}); diff --git a/plugins/walletConnect/type-extensions.ts b/plugins/walletConnect/type-extensions.ts deleted file mode 100644 index 16461c8..0000000 --- a/plugins/walletConnect/type-extensions.ts +++ /dev/null @@ -1,16 +0,0 @@ -import 'hardhat/types/config'; -import { EthereumProviderOptions } from '@walletconnect/ethereum-provider/dist/types/EthereumProvider'; - -declare module 'hardhat/types/config' { - interface HardhatUserConfig { - walletConnect: EthereumProviderOptions; - } - interface HardhatConfig { - walletConnect: EthereumProviderOptions; - } - - interface HttpNetworkUserConfig { - useWalletConnect?: boolean; - qrCodeUrl?: string; - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..ed1d561 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,5971 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@ensdomains/ens-contracts': + specifier: 1.2.2 + version: 1.2.2 + '@openzeppelin/contracts': + specifier: 5.1.0 + version: 5.1.0 + '@openzeppelin/contracts-upgradeable': + specifier: 5.1.0 + version: 5.1.0(@openzeppelin/contracts@5.1.0) + ethers: + specifier: 6.13.4 + version: 6.13.4 + devDependencies: + '@ensdomains/ensjs': + specifier: 4.0.1-alpha.0 + version: 4.0.1-alpha.0(typescript@5.6.3)(viem@2.21.35(typescript@5.6.3)) + '@nomicfoundation/hardhat-ethers': + specifier: ^3.0.8 + version: 3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@nomicfoundation/hardhat-ignition': + specifier: 0.15.7 + version: 0.15.7(@nomicfoundation/hardhat-verify@2.0.11(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@nomicfoundation/hardhat-ignition-ethers': + specifier: 0.15.7 + version: 0.15.7(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(@nomicfoundation/hardhat-ignition@0.15.7(@nomicfoundation/hardhat-verify@2.0.11(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(@nomicfoundation/ignition-core@0.15.7)(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@nomicfoundation/hardhat-ledger': + specifier: 1.0.3 + version: 1.0.3(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@nomicfoundation/hardhat-toolbox': + specifier: 5.0.0 + version: 5.0.0(zxywygooyjdarm3r5y56do2rw4) + '@nomicfoundation/ignition-core': + specifier: 0.15.7 + version: 0.15.7 + '@nomiclabs/hardhat-solhint': + specifier: 4.0.1 + version: 4.0.1(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))(typescript@5.6.3) + '@openzeppelin/hardhat-upgrades': + specifier: 3.5.0 + version: 3.5.0(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(@nomicfoundation/hardhat-verify@2.0.11(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@openzeppelin/upgrades-core': + specifier: 1.40.0 + version: 1.40.0 + '@safe-global/api-kit': + specifier: 2.5.3 + version: 2.5.3(typescript@5.6.3) + '@safe-global/protocol-kit': + specifier: 5.0.3 + version: 5.0.3(typescript@5.6.3) + '@typechain/ethers-v6': + specifier: 0.5.1 + version: 0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.6.3))(typescript@5.6.3) + '@typechain/hardhat': + specifier: 9.1.0 + version: 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.6.3))(typescript@5.6.3))(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))(typechain@8.3.2(typescript@5.6.3)) + '@types/chai': + specifier: 4.3.7 + version: 4.3.7 + '@types/fs-extra': + specifier: ^11.0.4 + version: 11.0.4 + '@types/mocha': + specifier: 10.0.9 + version: 10.0.9 + '@types/node': + specifier: 22.8.0 + version: 22.8.0 + chai: + specifier: 4.3.7 + version: 4.3.7 + dotenv: + specifier: 16.4.5 + version: 16.4.5 + fs-extra: + specifier: 11.2.0 + version: 11.2.0 + hardhat: + specifier: 2.22.15 + version: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + hardhat-gas-reporter: + specifier: 2.2.1 + version: 2.2.1(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))(typescript@5.6.3) + prettier: + specifier: 3.3.3 + version: 3.3.3 + prettier-plugin-solidity: + specifier: 1.4.1 + version: 1.4.1(prettier@3.3.3) + solhint: + specifier: 5.0.3 + version: 5.0.3(typescript@5.6.3) + solhint-plugin-prettier: + specifier: 0.1.0 + version: 0.1.0(prettier-plugin-solidity@1.4.1(prettier@3.3.3))(prettier@3.3.3) + solidity-coverage: + specifier: 0.8.13 + version: 0.8.13(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + ts-node: + specifier: 10.9.2 + version: 10.9.2(@types/node@22.8.0)(typescript@5.6.3) + typechain: + specifier: 8.3.2 + version: 8.3.2(typescript@5.6.3) + typescript: + specifier: 5.6.3 + version: 5.6.3 + +packages: + + '@adraffy/ens-normalize@1.10.0': + resolution: {integrity: sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==} + + '@adraffy/ens-normalize@1.10.1': + resolution: {integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==} + + '@adraffy/ens-normalize@1.11.0': + resolution: {integrity: sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==} + + '@aws-crypto/sha256-js@1.2.2': + resolution: {integrity: sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g==} + + '@aws-crypto/util@1.2.2': + resolution: {integrity: sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg==} + + '@aws-sdk/types@3.679.0': + resolution: {integrity: sha512-NwVq8YvInxQdJ47+zz4fH3BRRLC6lL+WLkvr242PVBbUOLRyK/lkwHlfiKUoeVIMyK5NF+up6TRg71t/8Bny6Q==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/util-utf8-browser@3.259.0': + resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} + + '@babel/code-frame@7.25.9': + resolution: {integrity: sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.25.9': + resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} + engines: {node: '>=6.9.0'} + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@ensdomains/address-encoder@1.0.0-rc.3': + resolution: {integrity: sha512-8o6zH69rObIqDY4PusEWuN9jvVOct+9jj9AOPO7ifc3ev8nmsly0e8TE1sHkhk0iKFbd3DlSsUnJ+yuRWmdLCQ==} + + '@ensdomains/address-encoder@1.1.1': + resolution: {integrity: sha512-yg7s+suCuKRhaGsgLu57W/jxIs/Lnqs/SU7jT7UwS4ATSnW94jbUCbmyyZ82CQwKsmwaUE8uYvvVb4N6lfz29A==} + + '@ensdomains/buffer@0.1.1': + resolution: {integrity: sha512-92SfSiNS8XorgU7OUBHo/i1ZU7JV7iz/6bKuLPNVsMxV79/eI7fJR6jfJJc40zAHjs3ha+Xo965Idomlq3rqnw==} + + '@ensdomains/content-hash@3.1.0-rc.1': + resolution: {integrity: sha512-OzdkXgdFmduzcJKU4KRkkJkQHnm5p7m7FkX8k+bHOEoOIzc0ueGT/Jay4nnb60wNk1wSHRmzY+hHBMpFDiGReg==} + + '@ensdomains/dnsprovejs@0.5.1': + resolution: {integrity: sha512-nfm4ggpK5YBVwVwLZKF9WPjRGRTL9aUxX2O4pqv/AnQCz3WeGHsW7VhVFLj2s4EoWSzCXwR1E6nuqgUwnH692w==} + engines: {node: '>=16.8'} + + '@ensdomains/ens-contracts@1.2.2': + resolution: {integrity: sha512-fX2rvqKJRpW+Dxnq91zhG39pRTC03gOamz7RvSEMHFPCUN7phcthq5u4+5tsEIXS6g7Xp5xmC5XTgcxK5Rd4HQ==} + + '@ensdomains/ensjs@4.0.1-alpha.0': + resolution: {integrity: sha512-IGaxCfvEibLKhPDhEC6zYUnhXgHFalZLsoZq0R58KmuzmJbWkQ1jwzbhVPXBfMYuGwcr4iz/4auiNT0x5aS7Zg==} + peerDependencies: + viem: ^2.9.2 + + '@ensdomains/solsha1@0.0.3': + resolution: {integrity: sha512-uhuG5LzRt/UJC0Ux83cE2rCKwSleRePoYdQVcqPN1wyf3/ekMzT/KZUF9+v7/AG5w9jlMLCQkUM50vfjr0Yu9Q==} + + '@ethereumjs/rlp@4.0.1': + resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} + engines: {node: '>=14'} + hasBin: true + + '@ethereumjs/util@8.1.0': + resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} + engines: {node: '>=14'} + + '@ethersproject/abi@5.7.0': + resolution: {integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==} + + '@ethersproject/abstract-provider@5.7.0': + resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==} + + '@ethersproject/abstract-signer@5.7.0': + resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==} + + '@ethersproject/address@5.6.1': + resolution: {integrity: sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==} + + '@ethersproject/address@5.7.0': + resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==} + + '@ethersproject/base64@5.7.0': + resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==} + + '@ethersproject/bignumber@5.7.0': + resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} + + '@ethersproject/bytes@5.7.0': + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} + + '@ethersproject/constants@5.7.0': + resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} + + '@ethersproject/hash@5.7.0': + resolution: {integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==} + + '@ethersproject/keccak256@5.7.0': + resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==} + + '@ethersproject/logger@5.7.0': + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} + + '@ethersproject/networks@5.7.1': + resolution: {integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==} + + '@ethersproject/properties@5.7.0': + resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==} + + '@ethersproject/rlp@5.7.0': + resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==} + + '@ethersproject/signing-key@5.7.0': + resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==} + + '@ethersproject/strings@5.7.0': + resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==} + + '@ethersproject/transactions@5.7.0': + resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==} + + '@ethersproject/units@5.7.0': + resolution: {integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==} + + '@ethersproject/web@5.7.1': + resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==} + + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + + '@graphql-typed-document-node/core@3.2.0': + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@ledgerhq/cryptoassets@9.13.0': + resolution: {integrity: sha512-MzGJyc48OGU/FLYGYwEJyfOgbJzlR8XJ9Oo6XpNpNUM1/E5NDqvD72V0D+0uWIJYN3e2NtyqHXShLZDu7P95YA==} + + '@ledgerhq/devices@8.4.4': + resolution: {integrity: sha512-sz/ryhe/R687RHtevIE9RlKaV8kkKykUV4k29e7GAVwzHX1gqG+O75cu1NCJUHLbp3eABV5FdvZejqRUlLis9A==} + + '@ledgerhq/domain-service@1.2.10': + resolution: {integrity: sha512-2VFcikYqzWGq6TJyJocC0UqwReD3qLx4ttk/LOr0z+eM1qHS9v32tGEkEzCNycV7wRs39fUi3xRrhs8RT780GA==} + + '@ledgerhq/errors@6.19.1': + resolution: {integrity: sha512-75yK7Nnit/Gp7gdrJAz0ipp31CCgncRp+evWt6QawQEtQKYEDfGo10QywgrrBBixeRxwnMy1DP6g2oCWRf1bjw==} + + '@ledgerhq/hw-app-eth@6.33.6': + resolution: {integrity: sha512-QzYvr5FNEWWd70Vg04A2i8CY0mtPgJrrX7/KePabjXrR8NjDyJ5Ej8qSQPBTp2dkR4TGiz5Y7+HIcWpdgYzjzg==} + + '@ledgerhq/hw-transport-mocker@6.29.4': + resolution: {integrity: sha512-CLDIpQ/eqU8qrCYGY9MyHa+oMgqs6PuNkWtqbcaS4AzNx8L/9bv7y8CZwCjxX6oB/2ZEq42RlL6oZ6Ou3oHnoQ==} + + '@ledgerhq/hw-transport-node-hid-noevents@6.30.5': + resolution: {integrity: sha512-nOPbhFU87LgLERVAQ+HhxV8E8c+7d8ptllkgiJUc4QwL2z9zkIOAEtgdvCaZ066Oi9XGnln/GF1oAgByYnYDPw==} + + '@ledgerhq/hw-transport-node-hid@6.29.5': + resolution: {integrity: sha512-2bAp4K50V1kdCufU9JdQPcw4aLyvA+yQRJU/X39B+PC+rnis40gEbqNh0henhzv876sXdbNk6G/MkDWXpwDIow==} + + '@ledgerhq/hw-transport@6.31.4': + resolution: {integrity: sha512-6c1ir/cXWJm5dCWdq55NPgCJ3UuKuuxRvf//Xs36Bq9BwkV2YaRQhZITAkads83l07NAdR16hkTWqqpwFMaI6A==} + + '@ledgerhq/logs@6.12.0': + resolution: {integrity: sha512-ExDoj1QV5eC6TEbMdLUMMk9cfvNKhhv5gXol4SmULRVCx/3iyCPhJ74nsb3S0Vb+/f+XujBEj3vQn5+cwS0fNA==} + + '@ledgerhq/types-live@6.52.4': + resolution: {integrity: sha512-cKo+PcGeTxILPeCLdFAu5XiRCPZYDQ6Iz68Y7+fLq13VW8jblpWPHJQybQ2I2gJnzGQle6EPSckfH58qSg6AYA==} + + '@leichtgewicht/ip-codec@2.0.5': + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + + '@metamask/eth-sig-util@4.0.1': + resolution: {integrity: sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==} + engines: {node: '>=12.0.0'} + + '@noble/curves@1.2.0': + resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} + + '@noble/curves@1.4.2': + resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==} + + '@noble/curves@1.6.0': + resolution: {integrity: sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.2.0': + resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} + + '@noble/hashes@1.3.2': + resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} + engines: {node: '>= 16'} + + '@noble/hashes@1.4.0': + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} + + '@noble/hashes@1.5.0': + resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} + engines: {node: ^14.21.3 || >=16} + + '@noble/secp256k1@1.7.1': + resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nomicfoundation/edr-darwin-arm64@0.6.4': + resolution: {integrity: sha512-QNQErISLgssV9+qia8sIjRANqtbW8snSDvjspixT/kSQ5ZSGxxctTg7x72wPSrcu8+EBEveIe5uqENIp5GH8HQ==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr-darwin-x64@0.6.4': + resolution: {integrity: sha512-cjVmREiwByyc9+oGfvAh49IAw+oVJHF9WWYRD+Tm/ZlSpnEVWxrGNBak2bd/JSYjn+mZE7gmWS4SMRi4nKaLUg==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr-linux-arm64-gnu@0.6.4': + resolution: {integrity: sha512-96o9kRIVD6W5VkgKvUOGpWyUGInVQ5BRlME2Fa36YoNsRQMaKtmYJEU0ACosYES6ZTpYC8U5sjMulvPtVoEfOA==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr-linux-arm64-musl@0.6.4': + resolution: {integrity: sha512-+JVEW9e5plHrUfQlSgkEj/UONrIU6rADTEk+Yp9pbe+mzNkJdfJYhs5JYiLQRP4OjxH4QOrXI97bKU6FcEbt5Q==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr-linux-x64-gnu@0.6.4': + resolution: {integrity: sha512-nzYWW+fO3EZItOeP4CrdMgDXfaGBIBkKg0Y/7ySpUxLqzut40O4Mb0/+quqLAFkacUSWMlFp8nsmypJfOH5zoA==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr-linux-x64-musl@0.6.4': + resolution: {integrity: sha512-QFRoE9qSQ2boRrVeQ1HdzU+XN7NUgwZ1SIy5DQt4d7jCP+5qTNsq8LBNcqhRBOATgO63nsweNUhxX/Suj5r1Sw==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr-win32-x64-msvc@0.6.4': + resolution: {integrity: sha512-2yopjelNkkCvIjUgBGhrn153IBPLwnsDeNiq6oA0WkeM8tGmQi4td+PGi9jAriUDAkc59Yoi2q9hYA6efiY7Zw==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr@0.6.4': + resolution: {integrity: sha512-YgrSuT3yo5ZQkbvBGqQ7hG+RDvz3YygSkddg4tb1Z0Y6pLXFzwrcEwWaJCFAVeeZxdxGfCgGMUYgRVneK+WXkw==} + engines: {node: '>= 18'} + + '@nomicfoundation/ethereumjs-common@4.0.4': + resolution: {integrity: sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==} + + '@nomicfoundation/ethereumjs-rlp@5.0.4': + resolution: {integrity: sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==} + engines: {node: '>=18'} + hasBin: true + + '@nomicfoundation/ethereumjs-tx@5.0.4': + resolution: {integrity: sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==} + engines: {node: '>=18'} + peerDependencies: + c-kzg: ^2.1.2 + peerDependenciesMeta: + c-kzg: + optional: true + + '@nomicfoundation/ethereumjs-util@9.0.4': + resolution: {integrity: sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==} + engines: {node: '>=18'} + peerDependencies: + c-kzg: ^2.1.2 + peerDependenciesMeta: + c-kzg: + optional: true + + '@nomicfoundation/hardhat-chai-matchers@2.0.8': + resolution: {integrity: sha512-Z5PiCXH4xhNLASROlSUOADfhfpfhYO6D7Hn9xp8PddmHey0jq704cr6kfU8TRrQ4PUZbpfsZadPj+pCfZdjPIg==} + peerDependencies: + '@nomicfoundation/hardhat-ethers': ^3.0.0 + chai: ^4.2.0 + ethers: ^6.1.0 + hardhat: ^2.9.4 + + '@nomicfoundation/hardhat-ethers@3.0.8': + resolution: {integrity: sha512-zhOZ4hdRORls31DTOqg+GmEZM0ujly8GGIuRY7t7szEk2zW/arY1qDug/py8AEktT00v5K+b6RvbVog+va51IA==} + peerDependencies: + ethers: ^6.1.0 + hardhat: ^2.0.0 + + '@nomicfoundation/hardhat-ignition-ethers@0.15.7': + resolution: {integrity: sha512-pUZWQeFNMwDe6F/yKIJsCo+87elk/M/Edjp6AnWWIBplRyPa13Nh63+yOqMSSd9Mx9lLuBaEGnYXoI2Uz2wYZA==} + peerDependencies: + '@nomicfoundation/hardhat-ethers': ^3.0.4 + '@nomicfoundation/hardhat-ignition': ^0.15.7 + '@nomicfoundation/ignition-core': ^0.15.7 + ethers: ^6.7.0 + hardhat: ^2.18.0 + + '@nomicfoundation/hardhat-ignition@0.15.7': + resolution: {integrity: sha512-RFhGazR0/JqHxuuIxjjMmM+nWFqEvA7wcVqcX7vUqqmAIGuok4HhnWQH8aOvBaVguiXvvlFDJL0PIlxmkFgIUg==} + peerDependencies: + '@nomicfoundation/hardhat-verify': ^2.0.1 + hardhat: ^2.18.0 + + '@nomicfoundation/hardhat-ledger@1.0.3': + resolution: {integrity: sha512-AwdfyZbF1p87xDTTzJJbnTlu3fyDSkyYjtkC5L5CZ9LYOXpsEp4cuUo26v0oGl6XutPN31HxUXbBbNPfhGcgFg==} + peerDependencies: + hardhat: ^2.16.0 + + '@nomicfoundation/hardhat-network-helpers@1.0.12': + resolution: {integrity: sha512-xTNQNI/9xkHvjmCJnJOTyqDSl8uq1rKb2WOVmixQxFtRd7Oa3ecO8zM0cyC2YmOK+jHB9WPZ+F/ijkHg1CoORA==} + peerDependencies: + hardhat: ^2.9.5 + + '@nomicfoundation/hardhat-toolbox@5.0.0': + resolution: {integrity: sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ==} + peerDependencies: + '@nomicfoundation/hardhat-chai-matchers': ^2.0.0 + '@nomicfoundation/hardhat-ethers': ^3.0.0 + '@nomicfoundation/hardhat-ignition-ethers': ^0.15.0 + '@nomicfoundation/hardhat-network-helpers': ^1.0.0 + '@nomicfoundation/hardhat-verify': ^2.0.0 + '@typechain/ethers-v6': ^0.5.0 + '@typechain/hardhat': ^9.0.0 + '@types/chai': ^4.2.0 + '@types/mocha': '>=9.1.0' + '@types/node': '>=18.0.0' + chai: ^4.2.0 + ethers: ^6.4.0 + hardhat: ^2.11.0 + hardhat-gas-reporter: ^1.0.8 + solidity-coverage: ^0.8.1 + ts-node: '>=8.0.0' + typechain: ^8.3.0 + typescript: '>=4.5.0' + + '@nomicfoundation/hardhat-verify@2.0.11': + resolution: {integrity: sha512-lGIo4dNjVQFdsiEgZp3KP6ntLiF7xJEJsbNHfSyIiFCyI0Yv0518ElsFtMC5uCuHEChiBBMrib9jWQvHHT+X3Q==} + peerDependencies: + hardhat: ^2.0.4 + + '@nomicfoundation/ignition-core@0.15.7': + resolution: {integrity: sha512-C4/0V/q2gNxKDt88cMr+Oxlf4NINQ7QgmJyciQ1/6UdCRUg+/Pgdgpd3vgGXQVTotq50Q/BU4ofNUAD/8HRqtg==} + + '@nomicfoundation/ignition-ui@0.15.7': + resolution: {integrity: sha512-pj2LmXylgbHOTNrkFqFrre/FAOjcwYl4VKIKVH/QMMBH/DatbiT8aC5n9o2fbLD8uwlPEesD+uXZuKCE71KFBg==} + + '@nomicfoundation/slang-darwin-arm64@0.17.0': + resolution: {integrity: sha512-O0q94EUtoWy9A5kOTOa9/khtxXDYnLqmuda9pQELurSiwbQEVCPQL8kb34VbOW+ifdre66JM/05Xw9JWhIZ9sA==} + engines: {node: '>= 10'} + + '@nomicfoundation/slang-darwin-x64@0.17.0': + resolution: {integrity: sha512-IaDbHzvT08sBK2HyGzonWhq1uu8IxdjmTqAWHr25Oh/PYnamdi8u4qchZXXYKz/DHLoYN3vIpBXoqLQIomhD/g==} + engines: {node: '>= 10'} + + '@nomicfoundation/slang-linux-arm64-gnu@0.17.0': + resolution: {integrity: sha512-Lj4anvOsQZxs1SycG8VyT2Rl2oqIhyLSUCgGepTt3CiJ/bM+8r8bLJIgh8vKkki4BWz49YsYIgaJB2IPv8FFTw==} + engines: {node: '>= 10'} + + '@nomicfoundation/slang-linux-arm64-musl@0.17.0': + resolution: {integrity: sha512-/xkTCa9d5SIWUBQE3BmLqDFfJRr4yUBwbl4ynPiGUpRXrD69cs6pWKkwjwz/FdBpXqVo36I+zY95qzoTj/YhOA==} + engines: {node: '>= 10'} + + '@nomicfoundation/slang-linux-x64-gnu@0.17.0': + resolution: {integrity: sha512-oe5IO5vntOqYvTd67deCHPIWuSuWm6aYtT2/0Kqz2/VLtGz4ClEulBSRwfnNzBVtw2nksWipE1w8BzhImI7Syg==} + engines: {node: '>= 10'} + + '@nomicfoundation/slang-linux-x64-musl@0.17.0': + resolution: {integrity: sha512-PpYCI5K/kgLAMXaPY0V4VST5gCDprEOh7z/47tbI8kJQumI5odjsj/Cs8MpTo7/uRH6flKYbVNgUzcocWVYrAQ==} + engines: {node: '>= 10'} + + '@nomicfoundation/slang-win32-arm64-msvc@0.17.0': + resolution: {integrity: sha512-u/Mkf7OjokdBilP7QOJj6QYJU4/mjkbKnTX21wLyCIzeVWS7yafRPYpBycKIBj2pRRZ6ceAY5EqRpb0aiCq+0Q==} + engines: {node: '>= 10'} + + '@nomicfoundation/slang-win32-ia32-msvc@0.17.0': + resolution: {integrity: sha512-XJBVQfNnZQUv0tP2JSJ573S+pmgrLWgqSZOGaMllnB/TL1gRci4Z7dYRJUF2s82GlRJE+FHSI2Ro6JISKmlXCg==} + engines: {node: '>= 10'} + + '@nomicfoundation/slang-win32-x64-msvc@0.17.0': + resolution: {integrity: sha512-zPGsAeiTfqfPNYHD8BfrahQmYzA78ZraoHKTGraq/1xwJwzBK4bu/NtvVA4pJjBV+B4L6DCxVhSbpn40q26JQA==} + engines: {node: '>= 10'} + + '@nomicfoundation/slang@0.17.0': + resolution: {integrity: sha512-1GlkGRcGpVnjFw9Z1vvDKOKo2mzparFt7qrl2pDxWp+jrVtlvej98yCMX52pVyrYE7ZeOSZFnx/DtsSgoukStQ==} + engines: {node: '>= 10'} + + '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': + resolution: {integrity: sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-darwin-x64@0.1.2': + resolution: {integrity: sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.2': + resolution: {integrity: sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.2': + resolution: {integrity: sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.2': + resolution: {integrity: sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.2': + resolution: {integrity: sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.2': + resolution: {integrity: sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer@0.1.2': + resolution: {integrity: sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==} + engines: {node: '>= 12'} + + '@nomiclabs/hardhat-solhint@4.0.1': + resolution: {integrity: sha512-ekfbbGfUwMZGr9aPAurPa7GVMX/6XqKemppVEez+mC36H7G5UyBsnrUKZMhMDVHG9S7+ke9sLuaibnWvpdSrQA==} + peerDependencies: + hardhat: ^2.0.0 + + '@openzeppelin/contracts-upgradeable@5.1.0': + resolution: {integrity: sha512-AIElwP5Ck+cslNE+Hkemf5SxjJoF4wBvvjxc27Rp+9jaPs/CLIaUBMYe1FNzhdiN0cYuwGRmYaRHmmntuiju4Q==} + peerDependencies: + '@openzeppelin/contracts': 5.1.0 + + '@openzeppelin/contracts@4.9.6': + resolution: {integrity: sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==} + + '@openzeppelin/contracts@5.1.0': + resolution: {integrity: sha512-p1ULhl7BXzjjbha5aqst+QMLY+4/LCWADXOCsmLHRM77AqiPjnd9vvUN9sosUfhL9JGKpZ0TjEGxgvnizmWGSA==} + + '@openzeppelin/defender-sdk-base-client@1.15.0': + resolution: {integrity: sha512-nuf/xegMIuKCO0hMrxI1KQKTzQw1iCl/9kew2nJM9MrFIohhfEXItc5rbJRoV/jehmK/Jhi9ATF9OHH09StEsQ==} + + '@openzeppelin/defender-sdk-deploy-client@1.15.0': + resolution: {integrity: sha512-2ODMN4j5pPYWyIOvA/zRQmJ0tJyqi6NV3S/PyvufBXa3oj/MDnVO5bMGSQFH0M2VE3bg+i/rcUb0hdbX9Rtm5Q==} + + '@openzeppelin/defender-sdk-network-client@1.15.0': + resolution: {integrity: sha512-tNynCqFB1XYancq/8yGuj0HCSIyNLSRSuH53Hp2Tl+DpM7W5vIkzSRfvJJxC+8Sld83bVavyNJzTN9xid992Ag==} + + '@openzeppelin/hardhat-upgrades@3.5.0': + resolution: {integrity: sha512-Ju/JnT7NRiOMi5m5Y0dGiz37d8wnjVBep1v5Vr7+6+MFNuQa1yddUEVWhWhoEw4udI3/mYwyw4Sfz3sq7vhicQ==} + hasBin: true + peerDependencies: + '@nomicfoundation/hardhat-ethers': ^3.0.0 + '@nomicfoundation/hardhat-verify': ^2.0.0 + ethers: ^6.6.0 + hardhat: ^2.0.2 + peerDependenciesMeta: + '@nomicfoundation/hardhat-verify': + optional: true + + '@openzeppelin/upgrades-core@1.40.0': + resolution: {integrity: sha512-4bPSXdEqHsNRL5T1ybPLneWGYjzGl6XWGWkv7aUoFFgz8mOdarstRBX1Wi4XJFw6IeHPUI7mMSQr2jdz8Y2ypQ==} + hasBin: true + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/npm-conf@2.3.1': + resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} + engines: {node: '>=12'} + + '@prettier/sync@0.3.0': + resolution: {integrity: sha512-3dcmCyAxIcxy036h1I7MQU/uEEBq8oLwf1CE3xeze+MPlgkdlb/+w6rGR/1dhp6Hqi17fRS6nvwnOzkESxEkOw==} + peerDependencies: + prettier: ^3.0.0 + + '@safe-global/api-kit@2.5.3': + resolution: {integrity: sha512-BHKKKohtM6cqtWmu2BIBl5YVMFeIzE1kBe2kfDi0JG9UbzTKYUYU8d/RnteFe5Nj/KiO7F7bJ708Z7ZxQ9Ap0g==} + + '@safe-global/protocol-kit@5.0.3': + resolution: {integrity: sha512-xVpuj1Ge/XYdLucPe36MXl09yK83f3drPqFK0UPhrONg//SP/K/sgyXnKy5o4zJrjidNV9V0PV7Xw84HOqOxtg==} + + '@safe-global/safe-deployments@1.37.13': + resolution: {integrity: sha512-DXDbyW+pSK5W+eyrT7I2VHgHjCUhiXgcmSjekCzwmzrRXB5sW36DLLDwfC5c1gvo26ix6NcIGRSk2sf68BHdeg==} + + '@safe-global/safe-modules-deployments@2.2.4': + resolution: {integrity: sha512-m396ZrBPhZVYkapTTIuizyOOtoZsCKbicl0ztgDFfDbi7KbS6AtDP6cV89AYosQxUQS+v0q4ksQd30/j3L1BtQ==} + + '@safe-global/types-kit@1.0.0': + resolution: {integrity: sha512-jZNUeHbWobeVrURbcEvfas4Q1IDasQni5UYm2umUtAR6SBDazp1kGni8IjZPRKq3+8q+fYwu9FmKpX50rUYn3w==} + + '@scure/base@1.1.9': + resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} + + '@scure/bip32@1.1.5': + resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==} + + '@scure/bip32@1.3.2': + resolution: {integrity: sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==} + + '@scure/bip32@1.4.0': + resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + + '@scure/bip32@1.5.0': + resolution: {integrity: sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==} + + '@scure/bip39@1.1.1': + resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} + + '@scure/bip39@1.2.1': + resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} + + '@scure/bip39@1.3.0': + resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} + + '@scure/bip39@1.4.0': + resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} + + '@sentry/core@5.30.0': + resolution: {integrity: sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==} + engines: {node: '>=6'} + + '@sentry/hub@5.30.0': + resolution: {integrity: sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==} + engines: {node: '>=6'} + + '@sentry/minimal@5.30.0': + resolution: {integrity: sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==} + engines: {node: '>=6'} + + '@sentry/node@5.30.0': + resolution: {integrity: sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==} + engines: {node: '>=6'} + + '@sentry/tracing@5.30.0': + resolution: {integrity: sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==} + engines: {node: '>=6'} + + '@sentry/types@5.30.0': + resolution: {integrity: sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==} + engines: {node: '>=6'} + + '@sentry/utils@5.30.0': + resolution: {integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==} + engines: {node: '>=6'} + + '@sindresorhus/is@5.6.0': + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + + '@smithy/types@3.6.0': + resolution: {integrity: sha512-8VXK/KzOHefoC65yRgCn5vG1cysPJjHnOVt9d0ybFQSmJgQj152vMn4EkYhGuaOmnnZvCPav/KnYyE6/KsNZ2w==} + engines: {node: '>=16.0.0'} + + '@solidity-parser/parser@0.18.0': + resolution: {integrity: sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==} + + '@szmarczak/http-timer@5.0.1': + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@typechain/ethers-v6@0.5.1': + resolution: {integrity: sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==} + peerDependencies: + ethers: 6.x + typechain: ^8.3.2 + typescript: '>=4.7.0' + + '@typechain/hardhat@9.1.0': + resolution: {integrity: sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==} + peerDependencies: + '@typechain/ethers-v6': ^0.5.1 + ethers: ^6.1.0 + hardhat: ^2.9.9 + typechain: ^8.3.2 + + '@types/bn.js@4.11.6': + resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} + + '@types/bn.js@5.1.6': + resolution: {integrity: sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==} + + '@types/chai-as-promised@7.1.8': + resolution: {integrity: sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==} + + '@types/chai@4.3.7': + resolution: {integrity: sha512-/k+vesl92vMvMygmQrFe9Aimxi6oQXFUX9mA5HanTrKUSAMoLauSi6PNFOdRw0oeqilaW600GNx2vSaT2f8aIQ==} + + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + + '@types/glob@7.2.0': + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + + '@types/lru-cache@5.1.1': + resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} + + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + + '@types/mocha@10.0.9': + resolution: {integrity: sha512-sicdRoWtYevwxjOHNMPTl3vSfJM6oyW8o1wXeI7uww6b6xHg8eBznQDNSGBCDJmsE8UMxP05JgZRtsKbTqt//Q==} + + '@types/node@22.7.5': + resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} + + '@types/node@22.8.0': + resolution: {integrity: sha512-84rafSBHC/z1i1E3p0cJwKA+CfYDNSXX9WSZBRopjIzLET8oNt6ht2tei4C7izwDeEiLLfdeSVBv1egOH916hg==} + + '@types/pbkdf2@3.1.2': + resolution: {integrity: sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==} + + '@types/prettier@2.7.3': + resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} + + '@types/secp256k1@4.0.6': + resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} + + '@types/w3c-web-usb@1.0.10': + resolution: {integrity: sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ==} + + abbrev@1.0.9: + resolution: {integrity: sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==} + + abitype@1.0.0: + resolution: {integrity: sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + + abitype@1.0.6: + resolution: {integrity: sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.13.0: + resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} + engines: {node: '>=0.4.0'} + hasBin: true + + adm-zip@0.4.16: + resolution: {integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==} + engines: {node: '>=0.3.0'} + + aes-js@4.0.0-beta.5: + resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + amazon-cognito-identity-js@6.3.12: + resolution: {integrity: sha512-s7NKDZgx336cp+oDeUtB2ZzT8jWJp/v2LWuYl+LQtMEODe22RF1IJ4nRiDATp+rp1pTffCZcm44Quw4jx2bqNg==} + + amdefine@1.0.1: + resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} + engines: {node: '>=0.4.2'} + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + antlr4@4.13.2: + resolution: {integrity: sha512-QiVbZhyy4xAZ17UPEuG3YTOt8ZaoeOR1CvEAqrEsDBsOqINslaB147i9xqljZqoyf5S+EUlGStaj+t22LT9MOg==} + engines: {node: '>=16'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-back@3.1.0: + resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} + engines: {node: '>=6'} + + array-back@4.0.2: + resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} + engines: {node: '>=8'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + + ast-parents@0.0.1: + resolution: {integrity: sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==} + + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} + + async@1.5.2: + resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base-x@3.0.10: + resolution: {integrity: sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + blakejs@1.2.1: + resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + + bn.js@4.11.6: + resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==} + + bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + + bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + + boxen@5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + brotli-wasm@2.0.1: + resolution: {integrity: sha512-+3USgYsC7bzb5yU0/p2HnnynZl0ak0E6uoIm4UW4Aby/8s8HFCq6NCfrrf1E9c3O8OCSzq3oYO1tUVqIi61Nww==} + + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + + browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + + bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + + bs58check@2.1.2: + resolution: {integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + + buffer@4.9.2: + resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + + cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + cbor@8.1.0: + resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==} + engines: {node: '>=12.19'} + + cbor@9.0.2: + resolution: {integrity: sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==} + engines: {node: '>=16'} + + chai-as-promised@7.1.2: + resolution: {integrity: sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==} + peerDependencies: + chai: '>= 2.1.2 < 6' + + chai@4.3.7: + resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + engines: {node: '>=4'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + + cipher-base@1.0.4: + resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + command-exists@1.2.9: + resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} + + command-line-args@5.2.1: + resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} + engines: {node: '>=4.0.0'} + + command-line-usage@6.1.3: + resolution: {integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==} + engines: {node: '>=8.0.0'} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + + create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-fetch@3.1.8: + resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + + death@1.1.0: + resolution: {integrity: sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==} + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + engines: {node: '>=6'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + + difflib@0.2.4: + resolution: {integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + eip55@2.1.1: + resolution: {integrity: sha512-WcagVAmNu2Ww2cDUfzuWVntYwFxbvZ5MvIyLZpMjTTkjD6sCvkGOiS86jTppzu9/gWsc8isLHAeMBWK02OnZmA==} + + elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + + elliptic@6.5.7: + resolution: {integrity: sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + error-stack-parser@1.3.6: + resolution: {integrity: sha512-xhuSYd8wLgOXwNgjcPeXMPL/IiiA1Huck+OPvClpJViVNNlJVtM41o+1emp7bPvlCJwCatFX2DWc05/DgfbWzA==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escodegen@1.8.1: + resolution: {integrity: sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==} + engines: {node: '>=0.12.0'} + hasBin: true + + esprima@2.7.3: + resolution: {integrity: sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==} + engines: {node: '>=0.10.0'} + hasBin: true + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + estraverse@1.9.3: + resolution: {integrity: sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==} + engines: {node: '>=0.10.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + ethereum-bloom-filters@1.2.0: + resolution: {integrity: sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==} + + ethereum-cryptography@0.1.3: + resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} + + ethereum-cryptography@1.2.0: + resolution: {integrity: sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==} + + ethereum-cryptography@2.2.1: + resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} + + ethereumjs-abi@0.6.8: + resolution: {integrity: sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==} + + ethereumjs-util@6.2.1: + resolution: {integrity: sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==} + + ethereumjs-util@7.1.5: + resolution: {integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==} + engines: {node: '>=10.0.0'} + + ethers@6.13.4: + resolution: {integrity: sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==} + engines: {node: '>=14.0.0'} + + ethjs-unit@0.1.6: + resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==} + engines: {node: '>=6.5.0', npm: '>=3'} + + ethjs-util@0.1.6: + resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==} + engines: {node: '>=6.5.0', npm: '>=3'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + + fast-base64-decode@1.0.0: + resolution: {integrity: sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-uri@3.0.3: + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-replace@3.0.0: + resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} + engines: {node: '>=4.0.0'} + + find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + + fp-ts@1.19.3: + resolution: {integrity: sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==} + + fp-ts@1.19.5: + resolution: {integrity: sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A==} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + ghost-testrpc@0.0.2: + resolution: {integrity: sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==} + hasBin: true + + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@5.0.15: + resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + + globby@10.0.2: + resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} + engines: {node: '>=8'} + + got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphql-request@6.1.0: + resolution: {integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==} + peerDependencies: + graphql: 14 - 16 + + graphql@16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + hardhat-gas-reporter@2.2.1: + resolution: {integrity: sha512-3AfPDGBn6VPmRKU65W28qVvG5x+qYL2gH9PAivd31oGj/ZHpZTutqXh6wq46993Vz35rnPDnrGo028U4/NP/Vw==} + peerDependencies: + hardhat: ^2.16.0 + + hardhat@2.22.15: + resolution: {integrity: sha512-BpTGa9PE/sKAaHi4s/S1e9WGv63DR1m7Lzfd60C8gSEchDPfAJssVRSq0MZ2v2k76ig9m0kHAwVLf5teYwu/Mw==} + hasBin: true + peerDependencies: + ts-node: '*' + typescript: '*' + peerDependenciesMeta: + ts-node: + optional: true + typescript: + optional: true + + has-flag@1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} + engines: {node: '>=0.10.0'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + hash-base@3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} + engines: {node: '>=4'} + + hash-test-vectors@1.3.2: + resolution: {integrity: sha512-PKd/fitmsrlWGh3OpKbgNLE04ZQZsvs1ZkuLoQpeIKuwx+6CYVNdW6LaPIS1QAdZvV40+skk0w4YomKnViUnvQ==} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + heap@0.2.7: + resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} + + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + immer@10.0.2: + resolution: {integrity: sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==} + + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + io-ts@1.10.4: + resolution: {integrity: sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hex-prefixed@1.0.0: + resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} + engines: {node: '>=6.5.0', npm: '>=3'} + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isomorphic-unfetch@3.1.0: + resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==} + + isows@1.0.3: + resolution: {integrity: sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==} + peerDependencies: + ws: '*' + + isows@1.0.6: + resolution: {integrity: sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==} + peerDependencies: + ws: '*' + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stream-stringify@3.1.6: + resolution: {integrity: sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==} + engines: {node: '>=7.10.1'} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonschema@1.4.1: + resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} + + keccak@3.0.4: + resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} + engines: {node: '>=10.0.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + latest-version@7.0.0: + resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} + engines: {node: '>=14.16'} + + levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + + lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + + lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru_map@0.3.3: + resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + markdown-table@2.0.0: + resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==} + + md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + + memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micro-ftch@0.3.1: + resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mnemonist@0.38.5: + resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} + + mocha@10.7.3: + resolution: {integrity: sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==} + engines: {node: '>= 14.0.0'} + hasBin: true + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + + ndjson@2.0.0: + resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} + engines: {node: '>=10'} + hasBin: true + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-abi@3.71.0: + resolution: {integrity: sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==} + engines: {node: '>=10'} + + node-addon-api@2.0.2: + resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + + node-addon-api@3.2.1: + resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} + + node-addon-api@5.1.0: + resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} + + node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + + node-emoji@1.11.0: + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} + hasBin: true + + node-hid@2.1.2: + resolution: {integrity: sha512-qhCyQqrPpP93F/6Wc/xUR7L8mAJW0Z6R7HMQV8jCHHksAxNDe/4z4Un/H9CpLOT+5K39OPyt9tIQlavxWES3lg==} + engines: {node: '>=10'} + hasBin: true + + nofilter@3.1.0: + resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} + engines: {node: '>=12.19'} + + nopt@3.0.6: + resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} + hasBin: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} + + number-to-bn@1.7.0: + resolution: {integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==} + engines: {node: '>=6.5.0', npm: '>=3'} + + obliterator@2.0.4: + resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + ordinal@1.0.3: + resolution: {integrity: sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + + p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} + + pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + prebuild-install@7.1.2: + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + engines: {node: '>=10'} + hasBin: true + + prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier-plugin-solidity@1.4.1: + resolution: {integrity: sha512-Mq8EtfacVZ/0+uDKTtHZGW3Aa7vEbX/BNx63hmVg6YTiTXSiuKP0amj0G6pGwjmLaOfymWh3QgXEZkjQbU8QRg==} + engines: {node: '>=16'} + peerDependencies: + prettier: '>=2.3.0' + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + + rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + + recursive-readdir@2.2.3: + resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} + engines: {node: '>=6.0.0'} + + reduce-flatten@2.0.0: + resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} + engines: {node: '>=6'} + + registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} + + registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} + + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve@1.1.7: + resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} + + resolve@1.17.0: + resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + + rlp@2.2.7: + resolution: {integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sc-istanbul@0.4.6: + resolution: {integrity: sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==} + hasBin: true + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + scrypt-js@3.0.1: + resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} + + secp256k1@4.0.4: + resolution: {integrity: sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw==} + engines: {node: '>=18.0.0'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + + sha1@1.1.1: + resolution: {integrity: sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + + solc@0.8.26: + resolution: {integrity: sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==} + engines: {node: '>=10.0.0'} + hasBin: true + + solhint-plugin-prettier@0.1.0: + resolution: {integrity: sha512-SDOTSM6tZxZ6hamrzl3GUgzF77FM6jZplgL2plFBclj/OjKP8Z3eIPojKU73gRr0MvOS8ACZILn8a5g0VTz/Gw==} + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-solidity: ^1.0.0 + + solhint@5.0.3: + resolution: {integrity: sha512-OLCH6qm/mZTCpplTXzXTJGId1zrtNuDYP5c2e6snIv/hdRVxPfBBz/bAlL91bY/Accavkayp2Zp2BaDSrLVXTQ==} + hasBin: true + + solidity-ast@0.4.59: + resolution: {integrity: sha512-I+CX0wrYUN9jDfYtcgWSe+OAowaXy8/1YQy7NS4ni5IBDmIYBq7ZzaP/7QqouLjzZapmQtvGLqCaYgoUWqBo5g==} + + solidity-coverage@0.8.13: + resolution: {integrity: sha512-RiBoI+kF94V3Rv0+iwOj3HQVSqNzA9qm/qDP1ZDXK5IX0Cvho1qiz8hAXTsAo6KOIUeP73jfscq0KlLqVxzGWA==} + hasBin: true + peerDependencies: + hardhat: ^2.11.0 + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.2.0: + resolution: {integrity: sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==} + engines: {node: '>=0.8.0'} + + source-map@0.5.6: + resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stack-generator@1.1.0: + resolution: {integrity: sha512-sZDVjwC56vZoo+a5t0LH/1sMQLWYLi/r+Z2ztyCAOhOX3QBP34GWxK0FWf2eU1TIU2CJKCKBAtDZycUh/ZKMlw==} + + stackframe@0.3.1: + resolution: {integrity: sha512-XmoiF4T5nuWEp2x2w92WdGjdHGY/cZa6LIbRsDRQR/Xlk4uW0PAUlH1zJYVffocwKpCdwyuypIp25xsSXEtZHw==} + + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + stacktrace-gps@2.4.4: + resolution: {integrity: sha512-msFhuMEEklQLUtaJ+GeCDjzUN+PamfHWQiK3C1LnbHjoxSeF5dAxiE+aJkptNMmMNOropGFJ7G3ZT7dPZHgDaQ==} + + stacktrace-js@1.3.1: + resolution: {integrity: sha512-b+5voFnXqg9TWdOE50soXL+WuOreYUm1Ukg9U7rzEWGL4+gcVxIcFasNBtOffVX0I1lYqVZj0PZXZvTt5e3YRQ==} + + stacktrace-parser@0.1.10: + resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} + engines: {node: '>=6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + string-format@2.0.0: + resolution: {integrity: sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-hex-prefix@1.0.0: + resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} + engines: {node: '>=6.5.0', npm: '>=3'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} + engines: {node: '>=0.8.0'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + table-layout@1.0.2: + resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} + engines: {node: '>=8.0.0'} + + table@6.8.2: + resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} + engines: {node: '>=10.0.0'} + + tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + ts-command-line-args@2.5.1: + resolution: {integrity: sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==} + hasBin: true + + ts-essentials@7.0.3: + resolution: {integrity: sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==} + peerDependencies: + typescript: '>=3.7.0' + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + tslib@2.8.0: + resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} + + tsort@0.0.1: + resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} + + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + tweetnacl-util@0.15.1: + resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} + + tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + + type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + + typechain@8.3.2: + resolution: {integrity: sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==} + hasBin: true + peerDependencies: + typescript: '>=4.3.0' + + typescript-logging@1.0.1: + resolution: {integrity: sha512-zp28ABme0m5q/nXabBaY9Hv/35N8lMH4FsvhpUO0zVi4vFs3uKlb5br2it61HAZF5k+U0aP6E67j0VD0IzXGpQ==} + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + typical@4.0.0: + resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} + engines: {node: '>=8'} + + typical@5.2.0: + resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==} + engines: {node: '>=8'} + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + undici@5.28.4: + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} + engines: {node: '>=14.0'} + + undici@6.20.1: + resolution: {integrity: sha512-AjQF1QsmqfJys+LXfGTNum+qw4S88CojRInG/6t31W/1fk6G59s92bnAvGz5Cmur+kQv2SURXEvvudLmbrE8QA==} + engines: {node: '>=18.17'} + + unfetch@4.2.0: + resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + usb@2.9.0: + resolution: {integrity: sha512-G0I/fPgfHUzWH8xo2KkDxTTFruUWfppgSFJ+bQxz/kVY2x15EQ/XDB7dqD1G432G4gBG4jYQuF3U7j/orSs5nw==} + engines: {node: '>=10.20.0 <11.x || >=12.17.0 <13.0 || >=14.0.0'} + + utf8@3.0.0: + resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + viem@2.21.35: + resolution: {integrity: sha512-f3EFc5JILeA9veuNymUN8HG/nKP9ykC0NCgwFrZWuxcCc822GaP0IEnkRBsHGqmjwbz//FxJFmvtx7TBcdVs0A==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + + viem@2.7.14: + resolution: {integrity: sha512-5b1KB1gXli02GOQHZIUsRluNUwssl2t4hqdFAzyWPwJ744N83jAOBOjOkrGz7K3qMIv9b0GQt3DoZIErSQTPkQ==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + web3-utils@1.10.4: + resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==} + engines: {node: '>=8.0.0'} + + webauthn-p256@0.0.10: + resolution: {integrity: sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + wordwrapjs@4.0.1: + resolution: {integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==} + engines: {node: '>=8.0.0'} + + workerpool@6.5.1: + resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@adraffy/ens-normalize@1.10.0': {} + + '@adraffy/ens-normalize@1.10.1': {} + + '@adraffy/ens-normalize@1.11.0': {} + + '@aws-crypto/sha256-js@1.2.2': + dependencies: + '@aws-crypto/util': 1.2.2 + '@aws-sdk/types': 3.679.0 + tslib: 1.14.1 + + '@aws-crypto/util@1.2.2': + dependencies: + '@aws-sdk/types': 3.679.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + + '@aws-sdk/types@3.679.0': + dependencies: + '@smithy/types': 3.6.0 + tslib: 2.8.0 + + '@aws-sdk/util-utf8-browser@3.259.0': + dependencies: + tslib: 2.8.0 + + '@babel/code-frame@7.25.9': + dependencies: + '@babel/highlight': 7.25.9 + picocolors: 1.1.1 + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/highlight@7.25.9': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@colors/colors@1.5.0': + optional: true + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@ensdomains/address-encoder@1.0.0-rc.3': + dependencies: + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/base': 1.1.9 + + '@ensdomains/address-encoder@1.1.1': + dependencies: + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/base': 1.1.9 + + '@ensdomains/buffer@0.1.1': {} + + '@ensdomains/content-hash@3.1.0-rc.1': + dependencies: + '@ensdomains/address-encoder': 1.0.0-rc.3 + '@noble/curves': 1.6.0 + '@scure/base': 1.1.9 + + '@ensdomains/dnsprovejs@0.5.1': + dependencies: + '@noble/hashes': 1.5.0 + dns-packet: 5.6.1 + typescript-logging: 1.0.1 + + '@ensdomains/ens-contracts@1.2.2': + dependencies: + '@ensdomains/buffer': 0.1.1 + '@ensdomains/solsha1': 0.0.3 + '@openzeppelin/contracts': 4.9.6 + dns-packet: 5.6.1 + + '@ensdomains/ensjs@4.0.1-alpha.0(typescript@5.6.3)(viem@2.21.35(typescript@5.6.3))': + dependencies: + '@adraffy/ens-normalize': 1.10.1 + '@ensdomains/address-encoder': 1.1.1 + '@ensdomains/content-hash': 3.1.0-rc.1 + '@ensdomains/dnsprovejs': 0.5.1 + abitype: 1.0.6(typescript@5.6.3) + dns-packet: 5.6.1 + graphql: 16.9.0 + graphql-request: 6.1.0(graphql@16.9.0) + pako: 2.1.0 + viem: 2.21.35(typescript@5.6.3) + transitivePeerDependencies: + - encoding + - typescript + - zod + + '@ensdomains/solsha1@0.0.3': + dependencies: + hash-test-vectors: 1.3.2 + + '@ethereumjs/rlp@4.0.1': {} + + '@ethereumjs/util@8.1.0': + dependencies: + '@ethereumjs/rlp': 4.0.1 + ethereum-cryptography: 2.2.1 + micro-ftch: 0.3.1 + + '@ethersproject/abi@5.7.0': + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@ethersproject/abstract-provider@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/properties': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.1 + + '@ethersproject/abstract-signer@5.7.0': + dependencies: + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + + '@ethersproject/address@5.6.1': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/rlp': 5.7.0 + + '@ethersproject/address@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/rlp': 5.7.0 + + '@ethersproject/base64@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + + '@ethersproject/bignumber@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + bn.js: 5.2.1 + + '@ethersproject/bytes@5.7.0': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/constants@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + + '@ethersproject/hash@5.7.0': + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@ethersproject/keccak256@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + js-sha3: 0.8.0 + + '@ethersproject/logger@5.7.0': {} + + '@ethersproject/networks@5.7.1': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/properties@5.7.0': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/rlp@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/signing-key@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + bn.js: 5.2.1 + elliptic: 6.5.4 + hash.js: 1.1.7 + + '@ethersproject/strings@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/transactions@5.7.0': + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + + '@ethersproject/units@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/web@5.7.1': + dependencies: + '@ethersproject/base64': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@fastify/busboy@2.1.1': {} + + '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)': + dependencies: + graphql: 16.9.0 + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@ledgerhq/cryptoassets@9.13.0': + dependencies: + invariant: 2.2.4 + + '@ledgerhq/devices@8.4.4': + dependencies: + '@ledgerhq/errors': 6.19.1 + '@ledgerhq/logs': 6.12.0 + rxjs: 7.8.1 + semver: 7.6.3 + + '@ledgerhq/domain-service@1.2.10(debug@4.3.7)': + dependencies: + '@ledgerhq/errors': 6.19.1 + '@ledgerhq/logs': 6.12.0 + '@ledgerhq/types-live': 6.52.4 + axios: 1.7.7(debug@4.3.7) + eip55: 2.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - debug + + '@ledgerhq/errors@6.19.1': {} + + '@ledgerhq/hw-app-eth@6.33.6(debug@4.3.7)': + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ledgerhq/cryptoassets': 9.13.0 + '@ledgerhq/domain-service': 1.2.10(debug@4.3.7) + '@ledgerhq/errors': 6.19.1 + '@ledgerhq/hw-transport': 6.31.4 + '@ledgerhq/hw-transport-mocker': 6.29.4 + '@ledgerhq/logs': 6.12.0 + axios: 1.7.7(debug@4.3.7) + bignumber.js: 9.1.2 + crypto-js: 4.2.0 + transitivePeerDependencies: + - debug + + '@ledgerhq/hw-transport-mocker@6.29.4': + dependencies: + '@ledgerhq/hw-transport': 6.31.4 + '@ledgerhq/logs': 6.12.0 + rxjs: 7.8.1 + + '@ledgerhq/hw-transport-node-hid-noevents@6.30.5': + dependencies: + '@ledgerhq/devices': 8.4.4 + '@ledgerhq/errors': 6.19.1 + '@ledgerhq/hw-transport': 6.31.4 + '@ledgerhq/logs': 6.12.0 + node-hid: 2.1.2 + + '@ledgerhq/hw-transport-node-hid@6.29.5': + dependencies: + '@ledgerhq/devices': 8.4.4 + '@ledgerhq/errors': 6.19.1 + '@ledgerhq/hw-transport': 6.31.4 + '@ledgerhq/hw-transport-node-hid-noevents': 6.30.5 + '@ledgerhq/logs': 6.12.0 + lodash: 4.17.21 + node-hid: 2.1.2 + usb: 2.9.0 + + '@ledgerhq/hw-transport@6.31.4': + dependencies: + '@ledgerhq/devices': 8.4.4 + '@ledgerhq/errors': 6.19.1 + '@ledgerhq/logs': 6.12.0 + events: 3.3.0 + + '@ledgerhq/logs@6.12.0': {} + + '@ledgerhq/types-live@6.52.4': + dependencies: + bignumber.js: 9.1.2 + rxjs: 7.8.1 + + '@leichtgewicht/ip-codec@2.0.5': {} + + '@metamask/eth-sig-util@4.0.1': + dependencies: + ethereumjs-abi: 0.6.8 + ethereumjs-util: 6.2.1 + ethjs-util: 0.1.6 + tweetnacl: 1.0.3 + tweetnacl-util: 0.15.1 + + '@noble/curves@1.2.0': + dependencies: + '@noble/hashes': 1.3.2 + + '@noble/curves@1.4.2': + dependencies: + '@noble/hashes': 1.4.0 + + '@noble/curves@1.6.0': + dependencies: + '@noble/hashes': 1.5.0 + + '@noble/hashes@1.2.0': {} + + '@noble/hashes@1.3.2': {} + + '@noble/hashes@1.4.0': {} + + '@noble/hashes@1.5.0': {} + + '@noble/secp256k1@1.7.1': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@nomicfoundation/edr-darwin-arm64@0.6.4': {} + + '@nomicfoundation/edr-darwin-x64@0.6.4': {} + + '@nomicfoundation/edr-linux-arm64-gnu@0.6.4': {} + + '@nomicfoundation/edr-linux-arm64-musl@0.6.4': {} + + '@nomicfoundation/edr-linux-x64-gnu@0.6.4': {} + + '@nomicfoundation/edr-linux-x64-musl@0.6.4': {} + + '@nomicfoundation/edr-win32-x64-msvc@0.6.4': {} + + '@nomicfoundation/edr@0.6.4': + dependencies: + '@nomicfoundation/edr-darwin-arm64': 0.6.4 + '@nomicfoundation/edr-darwin-x64': 0.6.4 + '@nomicfoundation/edr-linux-arm64-gnu': 0.6.4 + '@nomicfoundation/edr-linux-arm64-musl': 0.6.4 + '@nomicfoundation/edr-linux-x64-gnu': 0.6.4 + '@nomicfoundation/edr-linux-x64-musl': 0.6.4 + '@nomicfoundation/edr-win32-x64-msvc': 0.6.4 + + '@nomicfoundation/ethereumjs-common@4.0.4': + dependencies: + '@nomicfoundation/ethereumjs-util': 9.0.4 + transitivePeerDependencies: + - c-kzg + + '@nomicfoundation/ethereumjs-rlp@5.0.4': {} + + '@nomicfoundation/ethereumjs-tx@5.0.4': + dependencies: + '@nomicfoundation/ethereumjs-common': 4.0.4 + '@nomicfoundation/ethereumjs-rlp': 5.0.4 + '@nomicfoundation/ethereumjs-util': 9.0.4 + ethereum-cryptography: 0.1.3 + + '@nomicfoundation/ethereumjs-util@9.0.4': + dependencies: + '@nomicfoundation/ethereumjs-rlp': 5.0.4 + ethereum-cryptography: 0.1.3 + + '@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(chai@4.3.7)(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))': + dependencies: + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@types/chai-as-promised': 7.1.8 + chai: 4.3.7 + chai-as-promised: 7.1.2(chai@4.3.7) + deep-eql: 4.1.4 + ethers: 6.13.4 + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + ordinal: 1.0.3 + + '@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))': + dependencies: + debug: 4.3.7(supports-color@8.1.1) + ethers: 6.13.4 + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + lodash.isequal: 4.5.0 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/hardhat-ignition-ethers@0.15.7(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(@nomicfoundation/hardhat-ignition@0.15.7(@nomicfoundation/hardhat-verify@2.0.11(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(@nomicfoundation/ignition-core@0.15.7)(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))': + dependencies: + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@nomicfoundation/hardhat-ignition': 0.15.7(@nomicfoundation/hardhat-verify@2.0.11(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@nomicfoundation/ignition-core': 0.15.7 + ethers: 6.13.4 + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + + '@nomicfoundation/hardhat-ignition@0.15.7(@nomicfoundation/hardhat-verify@2.0.11(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))': + dependencies: + '@nomicfoundation/hardhat-verify': 2.0.11(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@nomicfoundation/ignition-core': 0.15.7 + '@nomicfoundation/ignition-ui': 0.15.7 + chalk: 4.1.2 + debug: 4.3.7(supports-color@8.1.1) + fs-extra: 10.1.0 + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + json5: 2.2.3 + prompts: 2.4.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@nomicfoundation/hardhat-ledger@1.0.3(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))': + dependencies: + '@ledgerhq/errors': 6.19.1 + '@ledgerhq/hw-app-eth': 6.33.6(debug@4.3.7) + '@ledgerhq/hw-transport': 6.31.4 + '@ledgerhq/hw-transport-node-hid': 6.29.5 + '@nomicfoundation/ethereumjs-util': 9.0.4 + chalk: 2.4.2 + debug: 4.3.7(supports-color@8.1.1) + env-paths: 2.2.1 + ethers: 6.13.4 + fs-extra: 7.0.1 + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + io-ts: 1.10.4 + ora: 5.4.1 + transitivePeerDependencies: + - bufferutil + - c-kzg + - supports-color + - utf-8-validate + + '@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))': + dependencies: + ethereumjs-util: 7.1.5 + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + + '@nomicfoundation/hardhat-toolbox@5.0.0(zxywygooyjdarm3r5y56do2rw4)': + dependencies: + '@nomicfoundation/hardhat-chai-matchers': 2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(chai@4.3.7)(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@nomicfoundation/hardhat-ignition-ethers': 0.15.7(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(@nomicfoundation/hardhat-ignition@0.15.7(@nomicfoundation/hardhat-verify@2.0.11(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(@nomicfoundation/ignition-core@0.15.7)(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@nomicfoundation/hardhat-network-helpers': 1.0.12(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@nomicfoundation/hardhat-verify': 2.0.11(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@typechain/ethers-v6': 0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.6.3))(typescript@5.6.3) + '@typechain/hardhat': 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.6.3))(typescript@5.6.3))(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))(typechain@8.3.2(typescript@5.6.3)) + '@types/chai': 4.3.7 + '@types/mocha': 10.0.9 + '@types/node': 22.8.0 + chai: 4.3.7 + ethers: 6.13.4 + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + hardhat-gas-reporter: 2.2.1(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))(typescript@5.6.3) + solidity-coverage: 0.8.13(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + ts-node: 10.9.2(@types/node@22.8.0)(typescript@5.6.3) + typechain: 8.3.2(typescript@5.6.3) + typescript: 5.6.3 + + '@nomicfoundation/hardhat-verify@2.0.11(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))': + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/address': 5.7.0 + cbor: 8.1.0 + chalk: 2.4.2 + debug: 4.3.7(supports-color@8.1.1) + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + lodash.clonedeep: 4.5.0 + semver: 6.3.1 + table: 6.8.2 + undici: 5.28.4 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/ignition-core@0.15.7': + dependencies: + '@ethersproject/address': 5.6.1 + '@nomicfoundation/solidity-analyzer': 0.1.2 + cbor: 9.0.2 + debug: 4.3.7(supports-color@8.1.1) + ethers: 6.13.4 + fs-extra: 10.1.0 + immer: 10.0.2 + lodash: 4.17.21 + ndjson: 2.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@nomicfoundation/ignition-ui@0.15.7': {} + + '@nomicfoundation/slang-darwin-arm64@0.17.0': {} + + '@nomicfoundation/slang-darwin-x64@0.17.0': {} + + '@nomicfoundation/slang-linux-arm64-gnu@0.17.0': {} + + '@nomicfoundation/slang-linux-arm64-musl@0.17.0': {} + + '@nomicfoundation/slang-linux-x64-gnu@0.17.0': {} + + '@nomicfoundation/slang-linux-x64-musl@0.17.0': {} + + '@nomicfoundation/slang-win32-arm64-msvc@0.17.0': {} + + '@nomicfoundation/slang-win32-ia32-msvc@0.17.0': {} + + '@nomicfoundation/slang-win32-x64-msvc@0.17.0': {} + + '@nomicfoundation/slang@0.17.0': + dependencies: + '@nomicfoundation/slang-darwin-arm64': 0.17.0 + '@nomicfoundation/slang-darwin-x64': 0.17.0 + '@nomicfoundation/slang-linux-arm64-gnu': 0.17.0 + '@nomicfoundation/slang-linux-arm64-musl': 0.17.0 + '@nomicfoundation/slang-linux-x64-gnu': 0.17.0 + '@nomicfoundation/slang-linux-x64-musl': 0.17.0 + '@nomicfoundation/slang-win32-arm64-msvc': 0.17.0 + '@nomicfoundation/slang-win32-ia32-msvc': 0.17.0 + '@nomicfoundation/slang-win32-x64-msvc': 0.17.0 + + '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer-darwin-x64@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer@0.1.2': + optionalDependencies: + '@nomicfoundation/solidity-analyzer-darwin-arm64': 0.1.2 + '@nomicfoundation/solidity-analyzer-darwin-x64': 0.1.2 + '@nomicfoundation/solidity-analyzer-linux-arm64-gnu': 0.1.2 + '@nomicfoundation/solidity-analyzer-linux-arm64-musl': 0.1.2 + '@nomicfoundation/solidity-analyzer-linux-x64-gnu': 0.1.2 + '@nomicfoundation/solidity-analyzer-linux-x64-musl': 0.1.2 + '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.2 + + '@nomiclabs/hardhat-solhint@4.0.1(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))(typescript@5.6.3)': + dependencies: + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + solhint: 5.0.3(typescript@5.6.3) + transitivePeerDependencies: + - typescript + + '@openzeppelin/contracts-upgradeable@5.1.0(@openzeppelin/contracts@5.1.0)': + dependencies: + '@openzeppelin/contracts': 5.1.0 + + '@openzeppelin/contracts@4.9.6': {} + + '@openzeppelin/contracts@5.1.0': {} + + '@openzeppelin/defender-sdk-base-client@1.15.0': + dependencies: + amazon-cognito-identity-js: 6.3.12 + async-retry: 1.3.3 + transitivePeerDependencies: + - encoding + + '@openzeppelin/defender-sdk-deploy-client@1.15.0(debug@4.3.7)': + dependencies: + '@openzeppelin/defender-sdk-base-client': 1.15.0 + axios: 1.7.7(debug@4.3.7) + lodash: 4.17.21 + transitivePeerDependencies: + - debug + - encoding + + '@openzeppelin/defender-sdk-network-client@1.15.0(debug@4.3.7)': + dependencies: + '@openzeppelin/defender-sdk-base-client': 1.15.0 + axios: 1.7.7(debug@4.3.7) + lodash: 4.17.21 + transitivePeerDependencies: + - debug + - encoding + + '@openzeppelin/hardhat-upgrades@3.5.0(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(@nomicfoundation/hardhat-verify@2.0.11(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)))(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))': + dependencies: + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + '@openzeppelin/defender-sdk-base-client': 1.15.0 + '@openzeppelin/defender-sdk-deploy-client': 1.15.0(debug@4.3.7) + '@openzeppelin/defender-sdk-network-client': 1.15.0(debug@4.3.7) + '@openzeppelin/upgrades-core': 1.40.0 + chalk: 4.1.2 + debug: 4.3.7(supports-color@8.1.1) + ethereumjs-util: 7.1.5 + ethers: 6.13.4 + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + proper-lockfile: 4.1.2 + undici: 6.20.1 + optionalDependencies: + '@nomicfoundation/hardhat-verify': 2.0.11(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)) + transitivePeerDependencies: + - encoding + - supports-color + + '@openzeppelin/upgrades-core@1.40.0': + dependencies: + '@nomicfoundation/slang': 0.17.0 + cbor: 9.0.2 + chalk: 4.1.2 + compare-versions: 6.1.1 + debug: 4.3.7(supports-color@8.1.1) + ethereumjs-util: 7.1.5 + minimatch: 9.0.5 + minimist: 1.2.8 + proper-lockfile: 4.1.2 + solidity-ast: 0.4.59 + transitivePeerDependencies: + - supports-color + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.3.1': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + + '@prettier/sync@0.3.0(prettier@3.3.3)': + dependencies: + prettier: 3.3.3 + + '@safe-global/api-kit@2.5.3(typescript@5.6.3)': + dependencies: + '@safe-global/protocol-kit': 5.0.3(typescript@5.6.3) + '@safe-global/types-kit': 1.0.0(typescript@5.6.3) + node-fetch: 2.7.0 + viem: 2.21.35(typescript@5.6.3) + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + + '@safe-global/protocol-kit@5.0.3(typescript@5.6.3)': + dependencies: + '@noble/hashes': 1.5.0 + '@safe-global/safe-deployments': 1.37.13 + '@safe-global/safe-modules-deployments': 2.2.4 + '@safe-global/types-kit': 1.0.0(typescript@5.6.3) + abitype: 1.0.6(typescript@5.6.3) + semver: 7.6.3 + viem: 2.21.35(typescript@5.6.3) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + + '@safe-global/safe-deployments@1.37.13': + dependencies: + semver: 7.6.3 + + '@safe-global/safe-modules-deployments@2.2.4': {} + + '@safe-global/types-kit@1.0.0(typescript@5.6.3)': + dependencies: + abitype: 1.0.6(typescript@5.6.3) + transitivePeerDependencies: + - typescript + - zod + + '@scure/base@1.1.9': {} + + '@scure/bip32@1.1.5': + dependencies: + '@noble/hashes': 1.2.0 + '@noble/secp256k1': 1.7.1 + '@scure/base': 1.1.9 + + '@scure/bip32@1.3.2': + dependencies: + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@scure/base': 1.1.9 + + '@scure/bip32@1.4.0': + dependencies: + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.9 + + '@scure/bip32@1.5.0': + dependencies: + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/base': 1.1.9 + + '@scure/bip39@1.1.1': + dependencies: + '@noble/hashes': 1.2.0 + '@scure/base': 1.1.9 + + '@scure/bip39@1.2.1': + dependencies: + '@noble/hashes': 1.3.2 + '@scure/base': 1.1.9 + + '@scure/bip39@1.3.0': + dependencies: + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.9 + + '@scure/bip39@1.4.0': + dependencies: + '@noble/hashes': 1.5.0 + '@scure/base': 1.1.9 + + '@sentry/core@5.30.0': + dependencies: + '@sentry/hub': 5.30.0 + '@sentry/minimal': 5.30.0 + '@sentry/types': 5.30.0 + '@sentry/utils': 5.30.0 + tslib: 1.14.1 + + '@sentry/hub@5.30.0': + dependencies: + '@sentry/types': 5.30.0 + '@sentry/utils': 5.30.0 + tslib: 1.14.1 + + '@sentry/minimal@5.30.0': + dependencies: + '@sentry/hub': 5.30.0 + '@sentry/types': 5.30.0 + tslib: 1.14.1 + + '@sentry/node@5.30.0': + dependencies: + '@sentry/core': 5.30.0 + '@sentry/hub': 5.30.0 + '@sentry/tracing': 5.30.0 + '@sentry/types': 5.30.0 + '@sentry/utils': 5.30.0 + cookie: 0.4.2 + https-proxy-agent: 5.0.1 + lru_map: 0.3.3 + tslib: 1.14.1 + transitivePeerDependencies: + - supports-color + + '@sentry/tracing@5.30.0': + dependencies: + '@sentry/hub': 5.30.0 + '@sentry/minimal': 5.30.0 + '@sentry/types': 5.30.0 + '@sentry/utils': 5.30.0 + tslib: 1.14.1 + + '@sentry/types@5.30.0': {} + + '@sentry/utils@5.30.0': + dependencies: + '@sentry/types': 5.30.0 + tslib: 1.14.1 + + '@sindresorhus/is@5.6.0': {} + + '@smithy/types@3.6.0': + dependencies: + tslib: 2.8.0 + + '@solidity-parser/parser@0.18.0': {} + + '@szmarczak/http-timer@5.0.1': + dependencies: + defer-to-connect: 2.0.1 + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@typechain/ethers-v6@0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.6.3))(typescript@5.6.3)': + dependencies: + ethers: 6.13.4 + lodash: 4.17.21 + ts-essentials: 7.0.3(typescript@5.6.3) + typechain: 8.3.2(typescript@5.6.3) + typescript: 5.6.3 + + '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.6.3))(typescript@5.6.3))(ethers@6.13.4)(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))(typechain@8.3.2(typescript@5.6.3))': + dependencies: + '@typechain/ethers-v6': 0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.6.3))(typescript@5.6.3) + ethers: 6.13.4 + fs-extra: 9.1.0 + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + typechain: 8.3.2(typescript@5.6.3) + + '@types/bn.js@4.11.6': + dependencies: + '@types/node': 22.8.0 + + '@types/bn.js@5.1.6': + dependencies: + '@types/node': 22.8.0 + + '@types/chai-as-promised@7.1.8': + dependencies: + '@types/chai': 4.3.7 + + '@types/chai@4.3.7': {} + + '@types/fs-extra@11.0.4': + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 22.8.0 + + '@types/glob@7.2.0': + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 22.8.0 + + '@types/http-cache-semantics@4.0.4': {} + + '@types/jsonfile@6.1.4': + dependencies: + '@types/node': 22.8.0 + + '@types/lru-cache@5.1.1': {} + + '@types/minimatch@5.1.2': {} + + '@types/mocha@10.0.9': {} + + '@types/node@22.7.5': + dependencies: + undici-types: 6.19.8 + + '@types/node@22.8.0': + dependencies: + undici-types: 6.19.8 + + '@types/pbkdf2@3.1.2': + dependencies: + '@types/node': 22.8.0 + + '@types/prettier@2.7.3': {} + + '@types/secp256k1@4.0.6': + dependencies: + '@types/node': 22.8.0 + + '@types/w3c-web-usb@1.0.10': {} + + abbrev@1.0.9: {} + + abitype@1.0.0(typescript@5.6.3): + optionalDependencies: + typescript: 5.6.3 + + abitype@1.0.6(typescript@5.6.3): + optionalDependencies: + typescript: 5.6.3 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.13.0 + + acorn@8.13.0: {} + + adm-zip@0.4.16: {} + + aes-js@4.0.0-beta.5: {} + + agent-base@6.0.2: + dependencies: + debug: 4.3.7(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + amazon-cognito-identity-js@6.3.12: + dependencies: + '@aws-crypto/sha256-js': 1.2.2 + buffer: 4.9.2 + fast-base64-decode: 1.0.0 + isomorphic-unfetch: 3.1.0 + js-cookie: 2.2.1 + transitivePeerDependencies: + - encoding + + amdefine@1.0.1: + optional: true + + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + + ansi-colors@4.1.3: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + antlr4@4.13.2: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@4.1.3: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-back@3.1.0: {} + + array-back@4.0.2: {} + + array-union@2.1.0: {} + + assertion-error@1.1.0: {} + + ast-parents@0.0.1: {} + + astral-regex@2.0.0: {} + + async-retry@1.3.3: + dependencies: + retry: 0.13.1 + + async@1.5.2: {} + + asynckit@0.4.0: {} + + at-least-node@1.0.0: {} + + axios@1.7.7(debug@4.3.7): + dependencies: + follow-redirects: 1.15.9(debug@4.3.7) + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + balanced-match@1.0.2: {} + + base-x@3.0.10: + dependencies: + safe-buffer: 5.2.1 + + base64-js@1.5.1: {} + + bignumber.js@9.1.2: {} + + binary-extensions@2.3.0: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + blakejs@1.2.1: {} + + bn.js@4.11.6: {} + + bn.js@4.12.0: {} + + bn.js@5.2.1: {} + + boxen@5.1.2: + dependencies: + ansi-align: 3.0.1 + camelcase: 6.3.0 + chalk: 4.1.2 + cli-boxes: 2.2.1 + string-width: 4.2.3 + type-fest: 0.20.2 + widest-line: 3.1.0 + wrap-ansi: 7.0.0 + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + brorand@1.1.0: {} + + brotli-wasm@2.0.1: {} + + browser-stdout@1.3.1: {} + + browserify-aes@1.2.0: + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.4 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + bs58@4.0.1: + dependencies: + base-x: 3.0.10 + + bs58check@2.1.2: + dependencies: + bs58: 4.0.1 + create-hash: 1.2.0 + safe-buffer: 5.2.1 + + buffer-from@1.1.2: {} + + buffer-xor@1.0.3: {} + + buffer@4.9.2: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + isarray: 1.0.0 + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bytes@3.1.2: {} + + cacheable-lookup@7.0.0: {} + + cacheable-request@10.2.14: + dependencies: + '@types/http-cache-semantics': 4.0.4 + get-stream: 6.0.1 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + mimic-response: 4.0.0 + normalize-url: 8.0.1 + responselike: 3.0.0 + + callsites@3.1.0: {} + + camelcase@6.3.0: {} + + cbor@8.1.0: + dependencies: + nofilter: 3.1.0 + + cbor@9.0.2: + dependencies: + nofilter: 3.1.0 + + chai-as-promised@7.1.2(chai@4.3.7): + dependencies: + chai: 4.3.7 + check-error: 1.0.3 + + chai@4.3.7: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.4 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.1.0 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + charenc@0.0.2: {} + + check-error@1.0.3: + dependencies: + get-func-name: 2.0.2 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + + chownr@1.1.4: {} + + ci-info@2.0.0: {} + + cipher-base@1.0.4: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + clean-stack@2.2.0: {} + + cli-boxes@2.2.1: {} + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cli-spinners@2.9.2: {} + + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone@1.0.4: {} + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + command-exists@1.2.9: {} + + command-line-args@5.2.1: + dependencies: + array-back: 3.1.0 + find-replace: 3.0.0 + lodash.camelcase: 4.3.0 + typical: 4.0.0 + + command-line-usage@6.1.3: + dependencies: + array-back: 4.0.2 + chalk: 2.4.2 + table-layout: 1.0.2 + typical: 5.2.0 + + commander@10.0.1: {} + + commander@8.3.0: {} + + compare-versions@6.1.1: {} + + concat-map@0.0.1: {} + + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + + cookie@0.4.2: {} + + cosmiconfig@8.3.6(typescript@5.6.3): + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + optionalDependencies: + typescript: 5.6.3 + + create-hash@1.2.0: + dependencies: + cipher-base: 1.0.4 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + + create-hmac@1.1.7: + dependencies: + cipher-base: 1.0.4 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + create-require@1.1.1: {} + + cross-fetch@3.1.8: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypt@0.0.2: {} + + crypto-js@4.2.0: {} + + death@1.1.0: {} + + debug@4.3.7(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + + decamelize@4.0.0: {} + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-eql@4.1.4: + dependencies: + type-detect: 4.1.0 + + deep-extend@0.6.0: {} + + deep-is@0.1.4: {} + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + defer-to-connect@2.0.1: {} + + delayed-stream@1.0.0: {} + + depd@2.0.0: {} + + detect-libc@2.0.3: {} + + diff@4.0.2: {} + + diff@5.2.0: {} + + difflib@0.2.4: + dependencies: + heap: 0.2.7 + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dns-packet@5.6.1: + dependencies: + '@leichtgewicht/ip-codec': 2.0.5 + + dotenv@16.4.5: {} + + eastasianwidth@0.2.0: {} + + eip55@2.1.1: + dependencies: + keccak: 3.0.4 + + elliptic@6.5.4: + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + elliptic@6.5.7: + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + + env-paths@2.2.1: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + error-stack-parser@1.3.6: + dependencies: + stackframe: 0.3.1 + + escalade@3.2.0: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escodegen@1.8.1: + dependencies: + esprima: 2.7.3 + estraverse: 1.9.3 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.2.0 + + esprima@2.7.3: {} + + esprima@4.0.1: {} + + estraverse@1.9.3: {} + + esutils@2.0.3: {} + + ethereum-bloom-filters@1.2.0: + dependencies: + '@noble/hashes': 1.5.0 + + ethereum-cryptography@0.1.3: + dependencies: + '@types/pbkdf2': 3.1.2 + '@types/secp256k1': 4.0.6 + blakejs: 1.2.1 + browserify-aes: 1.2.0 + bs58check: 2.1.2 + create-hash: 1.2.0 + create-hmac: 1.1.7 + hash.js: 1.1.7 + keccak: 3.0.4 + pbkdf2: 3.1.2 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + scrypt-js: 3.0.1 + secp256k1: 4.0.4 + setimmediate: 1.0.5 + + ethereum-cryptography@1.2.0: + dependencies: + '@noble/hashes': 1.2.0 + '@noble/secp256k1': 1.7.1 + '@scure/bip32': 1.1.5 + '@scure/bip39': 1.1.1 + + ethereum-cryptography@2.2.1: + dependencies: + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 + + ethereumjs-abi@0.6.8: + dependencies: + bn.js: 4.12.0 + ethereumjs-util: 6.2.1 + + ethereumjs-util@6.2.1: + dependencies: + '@types/bn.js': 4.11.6 + bn.js: 4.12.0 + create-hash: 1.2.0 + elliptic: 6.5.7 + ethereum-cryptography: 0.1.3 + ethjs-util: 0.1.6 + rlp: 2.2.7 + + ethereumjs-util@7.1.5: + dependencies: + '@types/bn.js': 5.1.6 + bn.js: 5.2.1 + create-hash: 1.2.0 + ethereum-cryptography: 0.1.3 + rlp: 2.2.7 + + ethers@6.13.4: + dependencies: + '@adraffy/ens-normalize': 1.10.1 + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@types/node': 22.7.5 + aes-js: 4.0.0-beta.5 + tslib: 2.7.0 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + ethjs-unit@0.1.6: + dependencies: + bn.js: 4.11.6 + number-to-bn: 1.7.0 + + ethjs-util@0.1.6: + dependencies: + is-hex-prefixed: 1.0.0 + strip-hex-prefix: 1.0.0 + + events@3.3.0: {} + + evp_bytestokey@1.0.3: + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + + expand-template@2.0.3: {} + + fast-base64-decode@1.0.0: {} + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-uri@3.0.3: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + file-uri-to-path@1.0.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-replace@3.0.0: + dependencies: + array-back: 3.1.0 + + find-up@2.1.0: + dependencies: + locate-path: 2.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat@5.0.2: {} + + follow-redirects@1.15.9(debug@4.3.7): + optionalDependencies: + debug: 4.3.7(supports-color@8.1.1) + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + form-data-encoder@2.1.4: {} + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + fp-ts@1.19.3: {} + + fp-ts@1.19.5: {} + + fs-constants@1.0.0: {} + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-caller-file@2.0.5: {} + + get-func-name@2.0.2: {} + + get-stream@6.0.1: {} + + ghost-testrpc@0.0.2: + dependencies: + chalk: 2.4.2 + node-emoji: 1.11.0 + + github-from-package@0.0.0: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@5.0.15: + dependencies: + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@7.1.7: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@7.2.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + + global-modules@2.0.0: + dependencies: + global-prefix: 3.0.0 + + global-prefix@3.0.0: + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + + globby@10.0.2: + dependencies: + '@types/glob': 7.2.0 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + glob: 7.2.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + got@12.6.1: + dependencies: + '@sindresorhus/is': 5.6.0 + '@szmarczak/http-timer': 5.0.1 + cacheable-lookup: 7.0.0 + cacheable-request: 10.2.14 + decompress-response: 6.0.0 + form-data-encoder: 2.1.4 + get-stream: 6.0.1 + http2-wrapper: 2.2.1 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 3.0.0 + + graceful-fs@4.2.10: {} + + graceful-fs@4.2.11: {} + + graphql-request@6.1.0(graphql@16.9.0): + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + cross-fetch: 3.1.8 + graphql: 16.9.0 + transitivePeerDependencies: + - encoding + + graphql@16.9.0: {} + + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + + hardhat-gas-reporter@2.2.1(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3))(typescript@5.6.3): + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/units': 5.7.0 + '@solidity-parser/parser': 0.18.0 + axios: 1.7.7(debug@4.3.7) + brotli-wasm: 2.0.1 + chalk: 4.1.2 + cli-table3: 0.6.5 + ethereum-cryptography: 2.2.1 + glob: 10.4.5 + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + jsonschema: 1.4.1 + lodash: 4.17.21 + markdown-table: 2.0.0 + sha1: 1.1.1 + viem: 2.7.14(typescript@5.6.3) + transitivePeerDependencies: + - bufferutil + - debug + - typescript + - utf-8-validate + - zod + + hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3): + dependencies: + '@ethersproject/abi': 5.7.0 + '@metamask/eth-sig-util': 4.0.1 + '@nomicfoundation/edr': 0.6.4 + '@nomicfoundation/ethereumjs-common': 4.0.4 + '@nomicfoundation/ethereumjs-tx': 5.0.4 + '@nomicfoundation/ethereumjs-util': 9.0.4 + '@nomicfoundation/solidity-analyzer': 0.1.2 + '@sentry/node': 5.30.0 + '@types/bn.js': 5.1.6 + '@types/lru-cache': 5.1.1 + adm-zip: 0.4.16 + aggregate-error: 3.1.0 + ansi-escapes: 4.3.2 + boxen: 5.1.2 + chalk: 2.4.2 + chokidar: 4.0.1 + ci-info: 2.0.0 + debug: 4.3.7(supports-color@8.1.1) + enquirer: 2.4.1 + env-paths: 2.2.1 + ethereum-cryptography: 1.2.0 + ethereumjs-abi: 0.6.8 + find-up: 2.1.0 + fp-ts: 1.19.3 + fs-extra: 7.0.1 + glob: 7.2.0 + immutable: 4.3.7 + io-ts: 1.10.4 + json-stream-stringify: 3.1.6 + keccak: 3.0.4 + lodash: 4.17.21 + mnemonist: 0.38.5 + mocha: 10.7.3 + p-map: 4.0.0 + raw-body: 2.5.2 + resolve: 1.17.0 + semver: 6.3.1 + solc: 0.8.26(debug@4.3.7) + source-map-support: 0.5.21 + stacktrace-parser: 0.1.10 + tsort: 0.0.1 + undici: 5.28.4 + uuid: 8.3.2 + ws: 7.5.10 + optionalDependencies: + ts-node: 10.9.2(@types/node@22.8.0)(typescript@5.6.3) + typescript: 5.6.3 + transitivePeerDependencies: + - bufferutil + - c-kzg + - supports-color + - utf-8-validate + + has-flag@1.0.0: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + hash-base@3.1.0: + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + safe-buffer: 5.2.1 + + hash-test-vectors@1.3.2: {} + + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + heap@0.2.7: {} + + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + http-cache-semantics@4.1.1: {} + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http2-wrapper@2.2.1: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.7(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + immer@10.0.2: {} + + immutable@4.3.7: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + indent-string@4.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + ini@1.3.8: {} + + interpret@1.4.0: {} + + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + + io-ts@1.10.4: + dependencies: + fp-ts: 1.19.5 + + is-arrayish@0.2.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hex-prefixed@1.0.0: {} + + is-interactive@1.0.0: {} + + is-number@7.0.0: {} + + is-plain-obj@2.1.0: {} + + is-unicode-supported@0.1.0: {} + + isarray@1.0.0: {} + + isexe@2.0.0: {} + + isomorphic-unfetch@3.1.0: + dependencies: + node-fetch: 2.7.0 + unfetch: 4.2.0 + transitivePeerDependencies: + - encoding + + isows@1.0.3(ws@8.13.0): + dependencies: + ws: 8.13.0 + + isows@1.0.6(ws@8.18.0): + dependencies: + ws: 8.18.0 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + js-cookie@2.2.1: {} + + js-sha3@0.8.0: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stream-stringify@3.1.6: {} + + json-stringify-safe@5.0.1: {} + + json5@2.2.3: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonschema@1.4.1: {} + + keccak@3.0.4: + dependencies: + node-addon-api: 2.0.2 + node-gyp-build: 4.8.2 + readable-stream: 3.6.2 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + kleur@3.0.3: {} + + latest-version@7.0.0: + dependencies: + package-json: 8.1.1 + + levn@0.3.0: + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + + lines-and-columns@1.2.4: {} + + locate-path@2.0.0: + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.camelcase@4.3.0: {} + + lodash.clonedeep@4.5.0: {} + + lodash.isequal@4.5.0: {} + + lodash.truncate@4.4.2: {} + + lodash@4.17.21: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + loupe@2.3.7: + dependencies: + get-func-name: 2.0.2 + + lowercase-keys@3.0.0: {} + + lru-cache@10.4.3: {} + + lru_map@0.3.3: {} + + make-error@1.3.6: {} + + markdown-table@2.0.0: + dependencies: + repeat-string: 1.6.1 + + md5.js@1.3.5: + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + memorystream@0.3.1: {} + + merge2@1.4.1: {} + + micro-ftch@0.3.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mimic-fn@2.1.0: {} + + mimic-response@3.1.0: {} + + mimic-response@4.0.0: {} + + minimalistic-assert@1.0.1: {} + + minimalistic-crypto-utils@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + mkdirp-classic@0.5.3: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mkdirp@1.0.4: {} + + mnemonist@0.38.5: + dependencies: + obliterator: 2.0.4 + + mocha@10.7.3: + dependencies: + ansi-colors: 4.1.3 + browser-stdout: 1.3.1 + chokidar: 3.6.0 + debug: 4.3.7(supports-color@8.1.1) + diff: 5.2.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 8.1.0 + he: 1.2.0 + js-yaml: 4.1.0 + log-symbols: 4.1.0 + minimatch: 5.1.6 + ms: 2.1.3 + serialize-javascript: 6.0.2 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 6.5.1 + yargs: 16.2.0 + yargs-parser: 20.2.9 + yargs-unparser: 2.0.0 + + ms@2.1.3: {} + + napi-build-utils@1.0.2: {} + + ndjson@2.0.0: + dependencies: + json-stringify-safe: 5.0.1 + minimist: 1.2.8 + readable-stream: 3.6.2 + split2: 3.2.2 + through2: 4.0.2 + + neo-async@2.6.2: {} + + node-abi@3.71.0: + dependencies: + semver: 7.6.3 + + node-addon-api@2.0.2: {} + + node-addon-api@3.2.1: {} + + node-addon-api@5.1.0: {} + + node-addon-api@6.1.0: {} + + node-emoji@1.11.0: + dependencies: + lodash: 4.17.21 + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-gyp-build@4.8.2: {} + + node-hid@2.1.2: + dependencies: + bindings: 1.5.0 + node-addon-api: 3.2.1 + prebuild-install: 7.1.2 + + nofilter@3.1.0: {} + + nopt@3.0.6: + dependencies: + abbrev: 1.0.9 + + normalize-path@3.0.0: {} + + normalize-url@8.0.1: {} + + number-to-bn@1.7.0: + dependencies: + bn.js: 4.11.6 + strip-hex-prefix: 1.0.0 + + obliterator@2.0.4: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + optionator@0.8.3: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.5 + + ora@5.4.1: + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + ordinal@1.0.3: {} + + os-tmpdir@1.0.2: {} + + p-cancelable@3.0.0: {} + + p-limit@1.3.0: + dependencies: + p-try: 1.0.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@2.0.0: + dependencies: + p-limit: 1.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + + p-try@1.0.0: {} + + package-json-from-dist@1.0.1: {} + + package-json@8.1.1: + dependencies: + got: 12.6.1 + registry-auth-token: 5.0.2 + registry-url: 6.0.1 + semver: 7.6.3 + + pako@2.1.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.25.9 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + path-exists@3.0.0: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-type@4.0.0: {} + + pathval@1.1.1: {} + + pbkdf2@3.1.2: + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + pify@4.0.1: {} + + pluralize@8.0.0: {} + + prebuild-install@7.1.2: + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.71.0 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + + prelude-ls@1.1.2: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier-plugin-solidity@1.4.1(prettier@3.3.3): + dependencies: + '@solidity-parser/parser': 0.18.0 + prettier: 3.3.3 + semver: 7.6.3 + + prettier@2.8.8: {} + + prettier@3.3.3: {} + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + + proto-list@1.2.4: {} + + proxy-from-env@1.1.0: {} + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + quick-lru@5.1.1: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readdirp@4.0.2: {} + + rechoir@0.6.2: + dependencies: + resolve: 1.22.8 + + recursive-readdir@2.2.3: + dependencies: + minimatch: 3.1.2 + + reduce-flatten@2.0.0: {} + + registry-auth-token@5.0.2: + dependencies: + '@pnpm/npm-conf': 2.3.1 + + registry-url@6.0.1: + dependencies: + rc: 1.2.8 + + repeat-string@1.6.1: {} + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resolve-alpn@1.2.1: {} + + resolve-from@4.0.0: {} + + resolve@1.1.7: {} + + resolve@1.17.0: + dependencies: + path-parse: 1.0.7 + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + responselike@3.0.0: + dependencies: + lowercase-keys: 3.0.0 + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + retry@0.12.0: {} + + retry@0.13.1: {} + + reusify@1.0.4: {} + + ripemd160@2.0.2: + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + + rlp@2.2.7: + dependencies: + bn.js: 5.2.1 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@7.8.1: + dependencies: + tslib: 2.8.0 + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + sc-istanbul@0.4.6: + dependencies: + abbrev: 1.0.9 + async: 1.5.2 + escodegen: 1.8.1 + esprima: 2.7.3 + glob: 5.0.15 + handlebars: 4.7.8 + js-yaml: 3.14.1 + mkdirp: 0.5.6 + nopt: 3.0.6 + once: 1.4.0 + resolve: 1.1.7 + supports-color: 3.2.3 + which: 1.3.1 + wordwrap: 1.0.0 + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + scrypt-js@3.0.1: {} + + secp256k1@4.0.4: + dependencies: + elliptic: 6.5.7 + node-addon-api: 5.1.0 + node-gyp-build: 4.8.2 + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.6.3: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + setimmediate@1.0.5: {} + + setprototypeof@1.2.0: {} + + sha.js@2.4.11: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + sha1@1.1.1: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shelljs@0.8.5: + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + + sisteransi@1.0.5: {} + + slash@3.0.0: {} + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + solc@0.8.26(debug@4.3.7): + dependencies: + command-exists: 1.2.9 + commander: 8.3.0 + follow-redirects: 1.15.9(debug@4.3.7) + js-sha3: 0.8.0 + memorystream: 0.3.1 + semver: 5.7.2 + tmp: 0.0.33 + transitivePeerDependencies: + - debug + + solhint-plugin-prettier@0.1.0(prettier-plugin-solidity@1.4.1(prettier@3.3.3))(prettier@3.3.3): + dependencies: + '@prettier/sync': 0.3.0(prettier@3.3.3) + prettier: 3.3.3 + prettier-linter-helpers: 1.0.0 + prettier-plugin-solidity: 1.4.1(prettier@3.3.3) + + solhint@5.0.3(typescript@5.6.3): + dependencies: + '@solidity-parser/parser': 0.18.0 + ajv: 6.12.6 + antlr4: 4.13.2 + ast-parents: 0.0.1 + chalk: 4.1.2 + commander: 10.0.1 + cosmiconfig: 8.3.6(typescript@5.6.3) + fast-diff: 1.3.0 + glob: 8.1.0 + ignore: 5.3.2 + js-yaml: 4.1.0 + latest-version: 7.0.0 + lodash: 4.17.21 + pluralize: 8.0.0 + semver: 7.6.3 + strip-ansi: 6.0.1 + table: 6.8.2 + text-table: 0.2.0 + optionalDependencies: + prettier: 2.8.8 + transitivePeerDependencies: + - typescript + + solidity-ast@0.4.59: {} + + solidity-coverage@0.8.13(hardhat@2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3)): + dependencies: + '@ethersproject/abi': 5.7.0 + '@solidity-parser/parser': 0.18.0 + chalk: 2.4.2 + death: 1.1.0 + difflib: 0.2.4 + fs-extra: 8.1.0 + ghost-testrpc: 0.0.2 + global-modules: 2.0.0 + globby: 10.0.2 + hardhat: 2.22.15(ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3))(typescript@5.6.3) + jsonschema: 1.4.1 + lodash: 4.17.21 + mocha: 10.7.3 + node-emoji: 1.11.0 + pify: 4.0.1 + recursive-readdir: 2.2.3 + sc-istanbul: 0.4.6 + semver: 7.6.3 + shelljs: 0.8.5 + web3-utils: 1.10.4 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.2.0: + dependencies: + amdefine: 1.0.1 + optional: true + + source-map@0.5.6: {} + + source-map@0.6.1: {} + + split2@3.2.2: + dependencies: + readable-stream: 3.6.2 + + sprintf-js@1.0.3: {} + + stack-generator@1.1.0: + dependencies: + stackframe: 1.3.4 + + stackframe@0.3.1: {} + + stackframe@1.3.4: {} + + stacktrace-gps@2.4.4: + dependencies: + source-map: 0.5.6 + stackframe: 0.3.1 + + stacktrace-js@1.3.1: + dependencies: + error-stack-parser: 1.3.6 + stack-generator: 1.1.0 + stacktrace-gps: 2.4.4 + + stacktrace-parser@0.1.10: + dependencies: + type-fest: 0.7.1 + + statuses@2.0.1: {} + + string-format@2.0.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-hex-prefix@1.0.0: + dependencies: + is-hex-prefixed: 1.0.0 + + strip-json-comments@2.0.1: {} + + strip-json-comments@3.1.1: {} + + supports-color@3.2.3: + dependencies: + has-flag: 1.0.0 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + table-layout@1.0.2: + dependencies: + array-back: 4.0.2 + deep-extend: 0.6.0 + typical: 5.2.0 + wordwrapjs: 4.0.1 + + table@6.8.2: + dependencies: + ajv: 8.17.1 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + tar-fs@2.1.1: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + text-table@0.2.0: {} + + through2@4.0.2: + dependencies: + readable-stream: 3.6.2 + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + tr46@0.0.3: {} + + ts-command-line-args@2.5.1: + dependencies: + chalk: 4.1.2 + command-line-args: 5.2.1 + command-line-usage: 6.1.3 + string-format: 2.0.0 + + ts-essentials@7.0.3(typescript@5.6.3): + dependencies: + typescript: 5.6.3 + + ts-node@10.9.2(@types/node@22.8.0)(typescript@5.6.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.8.0 + acorn: 8.13.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.6.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + tslib@1.14.1: {} + + tslib@2.7.0: {} + + tslib@2.8.0: {} + + tsort@0.0.1: {} + + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + + tweetnacl-util@0.15.1: {} + + tweetnacl@1.0.3: {} + + type-check@0.3.2: + dependencies: + prelude-ls: 1.1.2 + + type-detect@4.1.0: {} + + type-fest@0.20.2: {} + + type-fest@0.21.3: {} + + type-fest@0.7.1: {} + + typechain@8.3.2(typescript@5.6.3): + dependencies: + '@types/prettier': 2.7.3 + debug: 4.3.7(supports-color@8.1.1) + fs-extra: 7.0.1 + glob: 7.1.7 + js-sha3: 0.8.0 + lodash: 4.17.21 + mkdirp: 1.0.4 + prettier: 2.8.8 + ts-command-line-args: 2.5.1 + ts-essentials: 7.0.3(typescript@5.6.3) + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + typescript-logging@1.0.1: + dependencies: + stacktrace-js: 1.3.1 + + typescript@5.6.3: {} + + typical@4.0.0: {} + + typical@5.2.0: {} + + uglify-js@3.19.3: + optional: true + + undici-types@6.19.8: {} + + undici@5.28.4: + dependencies: + '@fastify/busboy': 2.1.1 + + undici@6.20.1: {} + + unfetch@4.2.0: {} + + universalify@0.1.2: {} + + universalify@2.0.1: {} + + unpipe@1.0.0: {} + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + usb@2.9.0: + dependencies: + '@types/w3c-web-usb': 1.0.10 + node-addon-api: 6.1.0 + node-gyp-build: 4.8.2 + + utf8@3.0.0: {} + + util-deprecate@1.0.2: {} + + uuid@8.3.2: {} + + v8-compile-cache-lib@3.0.1: {} + + viem@2.21.35(typescript@5.6.3): + dependencies: + '@adraffy/ens-normalize': 1.11.0 + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/bip32': 1.5.0 + '@scure/bip39': 1.4.0 + abitype: 1.0.6(typescript@5.6.3) + isows: 1.0.6(ws@8.18.0) + webauthn-p256: 0.0.10 + ws: 8.18.0 + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + + viem@2.7.14(typescript@5.6.3): + dependencies: + '@adraffy/ens-normalize': 1.10.0 + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@scure/bip32': 1.3.2 + '@scure/bip39': 1.2.1 + abitype: 1.0.0(typescript@5.6.3) + isows: 1.0.3(ws@8.13.0) + ws: 8.13.0 + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + + web3-utils@1.10.4: + dependencies: + '@ethereumjs/util': 8.1.0 + bn.js: 5.2.1 + ethereum-bloom-filters: 1.2.0 + ethereum-cryptography: 2.2.1 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: 2.1.0 + utf8: 3.0.0 + + webauthn-p256@0.0.10: + dependencies: + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + widest-line@3.1.0: + dependencies: + string-width: 4.2.3 + + word-wrap@1.2.5: {} + + wordwrap@1.0.0: {} + + wordwrapjs@4.0.1: + dependencies: + reduce-flatten: 2.0.0 + typical: 5.2.0 + + workerpool@6.5.1: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + ws@7.5.10: {} + + ws@8.13.0: {} + + ws@8.17.1: {} + + ws@8.18.0: {} + + y18n@5.0.8: {} + + yargs-parser@20.2.9: {} + + yargs-unparser@2.0.0: + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + + yargs@16.2.0: + dependencies: + cliui: 7.0.4 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + + yn@3.1.1: {} + + yocto-queue@0.1.0: {} diff --git a/scripts/build-publish.ts b/scripts/build-publish.ts new file mode 100644 index 0000000..4a82506 --- /dev/null +++ b/scripts/build-publish.ts @@ -0,0 +1,74 @@ +import { ensureDir, stat, copy, readJson, writeJson } from 'fs-extra'; +import path from 'path'; + +const CHAINS = ['11155111']; +const PUBLISH_DIR = 'publish'; +const BUILD_DIR = 'dist'; +const TYPES_DIR = 'types'; + +async function isDirectory(path: string): Promise { + try { + const stats = await stat(path); + return stats.isDirectory(); + } catch (error) { + // If the path doesn't exist, assume it's not a directory + return false; + } +} + +async function publishDir(src: string[], dest: string[]): Promise { + const publishDir = path.join(__dirname, '..', PUBLISH_DIR, ...dest); + if (await isDirectory(publishDir)) { + await ensureDir(publishDir); + } + void copy(path.join(...src), publishDir); +} + +async function main() { + try { + // Define paths + const rootDir = path.join(__dirname, '..'); + + void publishDir([rootDir, BUILD_DIR, TYPES_DIR], [TYPES_DIR]); + console.log(`Moved types`); + + void publishDir([rootDir, 'README.md'], ['README.md']); + console.log(`Moved Readme`); + + void publishDir([rootDir, 'artifacts'], ['artifacts']); + console.log(`Moved artifacts`); + + void publishDir([rootDir, 'contracts'], ['contracts']); + console.log(`Moved contracts`); + + void publishDir([rootDir, 'package.json'], ['package.json']); + console.log(`Moved package.json`); + + void publishDir([rootDir, 'LICENSE.txt'], ['LICENSE.txt']); + console.log(`Moved LICENSE.txt`); + + const outputJson: { [key: string]: Object } = {}; + const outputJsonPath = path.join(__dirname, '..', PUBLISH_DIR, 'addresses.json'); + for (const chain of CHAINS) { + const deployedAddressesPath = path.join( + __dirname, + '..', + 'ignition', + 'deployments', + `chain-${chain}`, + 'deployed_addresses.json', + ); + // Read the deployed addresses JSON + // Create new JSON structure with the chain ID + outputJson[chain] = await readJson(deployedAddressesPath); + } + // Write the new JSON to publish directory + await writeJson(outputJsonPath, outputJson, { spaces: 2 }); + console.log(`Created ${outputJsonPath}`); + } catch (error) { + console.error('An error occurred:', error); + } +} + +// Execute the script +main(); diff --git a/scripts/deploy/nameHash.ts b/scripts/deploy/nameHash.ts deleted file mode 100644 index c57636b..0000000 --- a/scripts/deploy/nameHash.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { ethers } from 'hardhat'; -import { CONTRACT_NAMES, logDeployment, saveDeployment } from '../utils'; - -async function main() { - const NameHashFactory = await ethers.getContractFactory(CONTRACT_NAMES.NAME_HASH); - const nameHash = await NameHashFactory.deploy(); - - await saveDeployment(nameHash, CONTRACT_NAMES.NAME_HASH); - await logDeployment(nameHash, CONTRACT_NAMES.NAME_HASH, []); -} - -// We recommend this pattern to be able to use async/await everywhere -// and properly handle errors. -main().catch((error) => { - console.error(error); - process.exitCode = 1; -}); diff --git a/scripts/deploy/publicListVerifier.ts b/scripts/deploy/publicListVerifier.ts deleted file mode 100644 index 5f972b5..0000000 --- a/scripts/deploy/publicListVerifier.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { ethers } from 'hardhat'; -import { - CONTRACT_NAMES, - getDeployedContractAddress, - logDeployment, - saveDeployment, -} from '../utils'; - -async function main() { - const registryAddress = await getDeployedContractAddress(CONTRACT_NAMES.REGISTRY); - - const PublicListVerifierFactory = await ethers.getContractFactory( - CONTRACT_NAMES.PUBLIC_LIST_VERIFIER, - ); - const publicListVerifier = await PublicListVerifierFactory.deploy(registryAddress); - - await saveDeployment(publicListVerifier, CONTRACT_NAMES.PUBLIC_LIST_VERIFIER); - await logDeployment(publicListVerifier, CONTRACT_NAMES.PUBLIC_LIST_VERIFIER, [registryAddress]); -} - -// We recommend this pattern to be able to use async/await everywhere -// and properly handle errors. -main().catch((error) => { - console.error(error); - process.exitCode = 1; -}); diff --git a/scripts/deploy/registry.ts b/scripts/deploy/registry.ts deleted file mode 100644 index b2d8753..0000000 --- a/scripts/deploy/registry.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { ethers } from 'hardhat'; -import { ADD_AUTHORIZER_ROLE } from '../../utils/roles'; -import { - CONTRACT_NAMES, - getDeployedContractAddress, - logDeployment, - saveDeployment, -} from '../utils'; - -async function main() { - const nameHashAddress = await getDeployedContractAddress(CONTRACT_NAMES.NAME_HASH); - - const RegistryFactory = await ethers.getContractFactory(CONTRACT_NAMES.REGISTRY); - const registry = await RegistryFactory.deploy(nameHashAddress); - - await saveDeployment(registry, CONTRACT_NAMES.REGISTRY); - await logDeployment(registry, CONTRACT_NAMES.REGISTRY, [nameHashAddress]); - - await registry.grantRole(ADD_AUTHORIZER_ROLE, await ethers.provider.getSigner()); - const sciAuthorizer = await getDeployedContractAddress('SciAuthorizer'); - await registry.setAuthorizer(1, sciAuthorizer); -} - -// We recommend this pattern to be able to use async/await everywhere -// and properly handle errors. -main().catch((error) => { - console.error(error); - process.exitCode = 1; -}); diff --git a/scripts/deploy/sci.ts b/scripts/deploy/sci.ts deleted file mode 100644 index dd4ea85..0000000 --- a/scripts/deploy/sci.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { ethers, upgrades } from 'hardhat'; -import { - CONTRACT_NAMES, - getDeployedContractAddress, - logDeployment, - saveDeployment, -} from '../utils'; - -async function main() { - const registryAddress = await getDeployedContractAddress(CONTRACT_NAMES.REGISTRY); - const nameHashAddress = await getDeployedContractAddress(CONTRACT_NAMES.NAME_HASH); - - const SCIFactory = await ethers.getContractFactory(CONTRACT_NAMES.SCI); - const sci = await upgrades.deployProxy(SCIFactory, [registryAddress, nameHashAddress], { - initializer: 'initialize', - }); - await sci.waitForDeployment(); - - await saveDeployment(sci, CONTRACT_NAMES.SCI); - await logDeployment(sci, CONTRACT_NAMES.SCI, []); -} - -// We recommend this pattern to be able to use async/await everywhere -// and properly handle errors. -main().catch((error) => { - console.error(error); - process.exitCode = 1; -}); diff --git a/scripts/deploy/sciAuthorizer.ts b/scripts/deploy/sciAuthorizer.ts deleted file mode 100644 index 14c8bfb..0000000 --- a/scripts/deploy/sciAuthorizer.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ethers } from 'hardhat'; -import { CONTRACT_NAMES, logDeployment, saveDeployment } from '../utils'; -import { IS_AUTHORIZED } from '../../utils/roles'; - -async function main() { - const SCIAuthorizerFactory = await ethers.getContractFactory(CONTRACT_NAMES.SCI_AUTHORIZER); - const sciAuthorizer = await SCIAuthorizerFactory.deploy(); - - await sciAuthorizer.grantRole(IS_AUTHORIZED, await ethers.provider.getSigner()); - - await saveDeployment(sciAuthorizer, CONTRACT_NAMES.SCI_AUTHORIZER); - await logDeployment(sciAuthorizer, CONTRACT_NAMES.SCI_AUTHORIZER, []); -} - -// We recommend this pattern to be able to use async/await everywhere -// and properly handle errors. -main().catch((error) => { - console.error(error); - process.exitCode = 1; -}); diff --git a/scripts/fixture/verify-addresses/verifyAddresses.ts b/scripts/fixture/verify-addresses/verifyAddresses.ts index 841f34a..473e418 100644 --- a/scripts/fixture/verify-addresses/verifyAddresses.ts +++ b/scripts/fixture/verify-addresses/verifyAddresses.ts @@ -1,47 +1,42 @@ -import { ethers } from 'hardhat'; -import { - NameHash__factory, - PublicListVerifier__factory, - Registry__factory, - SCIAuthorizer__factory, -} from '../../../types'; -import { IS_AUTHORIZED } from '../../../utils/roles'; +import {ethers} from 'hardhat'; import { ADDRESS_TO_VERIFY } from './addresses'; -import { CONTRACT_NAMES, getDeployedContractAddress, sendTransactionsViaSafe } from '../../utils'; +import {getDeployedContractAddress, sendTransactionsViaSafe} from '../../utils'; import { ContractTransaction } from 'ethers'; +import { namehash } from '@ensdomains/ensjs/utils'; +import {PublicListVerifier__factory, SciRegistrar__factory, SciRegistry__factory} from "../../../types"; async function main() { - const registryAddress = await getDeployedContractAddress(CONTRACT_NAMES.REGISTRY); - const verifierAddress = await getDeployedContractAddress(CONTRACT_NAMES.PUBLIC_LIST_VERIFIER); - const sciAuthorizerAddress = await getDeployedContractAddress(CONTRACT_NAMES.SCI_AUTHORIZER); - const nameHashAddress = await getDeployedContractAddress(CONTRACT_NAMES.NAME_HASH); - const safeAddress = process.env.SAFE_ADDRESS!; const owner = await ethers.provider.getSigner(); - const publicListVerifier = PublicListVerifier__factory.connect(verifierAddress, owner); - const sciAuthorizer = SCIAuthorizer__factory.connect(sciAuthorizerAddress, owner); - const registry = Registry__factory.connect(registryAddress, owner); - const nameHash = NameHash__factory.connect(nameHashAddress, owner); + const deployedAddresses = await getDeployedContractAddress(); + + const publicListVerifier = PublicListVerifier__factory.connect(deployedAddresses["PublicListVerifier#PublicListVerifier"], owner); + const sciRegistrar = SciRegistrar__factory.connect(deployedAddresses["SciRegstrar#SciRegistrar"], owner); + const sciRegistry = SciRegistry__factory.connect(deployedAddresses["SciRegistry#SciRegistry"], owner); const txs: ContractTransaction[] = []; // Add the pk as domain owner - if (!(await sciAuthorizer.hasRole(IS_AUTHORIZED, safeAddress))) { - txs.push(await sciAuthorizer.grantRole.populateTransaction(IS_AUTHORIZED, safeAddress)); + if (!(await sciRegistrar.hasRole(await sciRegistrar.REGISTER_DOMAIN_ROLE(), safeAddress))) { + txs.push( + await sciRegistrar.grantRole.populateTransaction( + await sciRegistrar.REGISTER_DOMAIN_ROLE(), + safeAddress + ) + ); } const addressEntries = Object.entries(ADDRESS_TO_VERIFY); for (let i = 0; i < addressEntries.length; i++) { const [domain, contracts] = addressEntries[i]; - const domainHash = await nameHash.getDomainHash(domain); + const domainHash = namehash(domain); - if (!(await registry.isDomainOwner(domainHash, safeAddress))) { + if (!(await sciRegistry.isDomainOwner(domainHash, safeAddress))) { txs.push( - await registry.registerDomainWithVerifier.populateTransaction( - 1, - domain, - false, - verifierAddress, + await sciRegistrar.registerDomainWithVerifier.populateTransaction( + safeAddress, + domainHash, + publicListVerifier.target, ), ); } @@ -54,7 +49,7 @@ async function main() { ), ); - console.log(`Finish ${domain}`); + console.log(`Finish ${domainHash}`); } await sendTransactionsViaSafe(txs, safeAddress); diff --git a/scripts/setup-localhost.ts b/scripts/setup-localhost.ts new file mode 100644 index 0000000..c6b58b6 --- /dev/null +++ b/scripts/setup-localhost.ts @@ -0,0 +1,29 @@ +import {ethers} from "hardhat"; +import {keccak256, namehash, toUtf8Bytes} from "ethers"; + + +async function main() { + const [owner] = await ethers.getSigners(); + + // ENS Contracts Deployment + const EnsFactory = await ethers.getContractFactory('ENSRegistry'); + const ens = await EnsFactory.deploy(); + + // Set ENS nodes for testing + await ens.setSubnodeOwner( + '0x0000000000000000000000000000000000000000000000000000000000000000', + keccak256(toUtf8Bytes('eth')), + owner.address, + ); + await ens.setSubnodeOwner(namehash('eth'), keccak256(toUtf8Bytes('a')), owner.address); + console.log("Deployed ENS to:", await ens.getAddress()); +} + +// We recommend this pattern to be able to use async/await everywhere +// and properly handle errors. +main() + .catch((error) => { + console.error(error); + process.exit(1); + }) + .then(() => process.exit()); diff --git a/scripts/upgrades/sci.ts b/scripts/upgrades/sci.ts deleted file mode 100644 index cfe5b36..0000000 --- a/scripts/upgrades/sci.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ethers, upgrades } from 'hardhat'; -import { CONTRACT_NAMES, getDeployedContractAddress } from '../utils'; - -async function main() { - const SCIFactory = await ethers.getContractFactory('SCI'); - await upgrades.upgradeProxy(await getDeployedContractAddress(CONTRACT_NAMES.SCI), SCIFactory); - console.log(`SCI Upgrade`); -} - -// We recommend this pattern to be able to use async/await everywhere -// and properly handle errors. -main().catch((error) => { - console.error(error); - process.exitCode = 1; -}); diff --git a/scripts/utils.ts b/scripts/utils.ts index d1d9cd6..a0ec8d7 100644 --- a/scripts/utils.ts +++ b/scripts/utils.ts @@ -1,60 +1,26 @@ import { ethers, network } from 'hardhat'; -import { BaseContract } from 'ethers'; -import fs from 'fs'; import Safe from '@safe-global/protocol-kit'; import SafeApiKit from '@safe-global/api-kit'; import { ContractTransaction } from 'ethers/lib.esm'; - -export enum CONTRACT_NAMES { - REGISTRY = 'Registry', - NAME_HASH = 'NameHash', - PUBLIC_LIST_VERIFIER = 'PublicListVerifier', - SCI = 'SCI', - SCI_AUTHORIZER = 'SCIAuthorizer', +import * as fs from "fs"; + +type DeploymentAddresses = { + "SciRegistry#SciRegistry": string, + "PublicListVerifier#PublicListVerifier": string, + "SciRegstrar#SciRegistrar": string, + "ProxyModule#SCI": string, + "ProxyModule#TransparentUpgradeableProxy": string, + "ProxyModule#ProxyAdmin": string, + "SciModule#SCI": string } -const DEPLOYMENT_FOLDER = './deployments'; -async function generateDeploymentPath(): Promise { +export async function getDeployedContractAddress(): Promise { const network = await ethers.provider.getNetwork(); - return `${DEPLOYMENT_FOLDER}/${network.name}`; -} - -export async function saveDeployment(contract: BaseContract, contractName: string) { - const filePath = await generateDeploymentPath(); - - // Create the directory if it doesn't exist - if (!fs.existsSync(filePath)) { - fs.mkdirSync(filePath); - } - - fs.writeFileSync( - `${filePath}/${contractName}.json`, - JSON.stringify( - { - address: contract.target, - }, - null, - 2, - ), - ); + const path = `ignition/deployments/chain-${network.chainId}/deployed_addresses.json`; + return JSON.parse(fs.readFileSync(path).toString()); } -export async function logDeployment(contract: BaseContract, contractName: string, args: string[]) { - console.log(`Deployed ${contractName} to ${contract.target}`); - const network = await ethers.provider.getNetwork(); - console.log( - `To verify it run:\nyarn hardhat verify --network ${network.name} ${ - contract.target - } ${args.join(' ')}`, - ); -} - -export async function getDeployedContractAddress(contractName: string): Promise { - const filePath = await generateDeploymentPath(); - const deploymentFile = JSON.parse(fs.readFileSync(`${filePath}/${contractName}.json`).toString()); - return deploymentFile.address; -} export async function sendTransactionsViaSafe( ethersTransactions: ContractTransaction[], diff --git a/test/Registrars/EnsRegistrar.test.ts b/test/Registrars/EnsRegistrar.test.ts new file mode 100644 index 0000000..9ebfb7d --- /dev/null +++ b/test/Registrars/EnsRegistrar.test.ts @@ -0,0 +1,89 @@ +import { expect } from 'chai'; +import { ethers, ignition } from 'hardhat'; +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers'; +import { keccak256, namehash, toUtf8Bytes } from 'ethers'; +import { EnsRegistrar, SciRegistry } from '../../types'; +import { + EnsRegistrarModule, + EnsRegistrarModuleReturnType, +} from '../../ignition/modules/registrars/EnsRegistrarModule'; + +const NON_EXISTING_DOMAIN_HASH = + '0x77ebf9a801c579f50495cbb82e12145b476276f47b480b84c367a30b04d18e15'; +const DOMAIN_HASH = '0xfcec0ff58c10be0e399a3a51186968513cc3a4c572a51d688ff338b3fbf6a7f9'; + +describe('EnsRegistrar', function () { + let owner: HardhatEthersSigner; + let addresses: HardhatEthersSigner[]; + let ensRegistrar: EnsRegistrar; + let sciRegistry: SciRegistry; + + beforeEach(async () => { + [owner, ...addresses] = await ethers.getSigners(); + + // ENS Contracts Deployment + const EnsFactory = await ethers.getContractFactory('ENSRegistry'); + const ens = await EnsFactory.deploy(); + + // Set ENS nodes for testing + await ens.setSubnodeOwner( + '0x0000000000000000000000000000000000000000000000000000000000000000', + keccak256(toUtf8Bytes('eth')), + owner.address, + ); + await ens.setSubnodeOwner(namehash('eth'), keccak256(toUtf8Bytes('a')), owner.address); + + // SCI Contracts + ({ ensRegistrar, sciRegistry } = await (ignition.deploy(EnsRegistrarModule, { + parameters: { + EnsRegistrar: { + ensRegistryAddress: ens.target as string, + }, + }, + }) as unknown as EnsRegistrarModuleReturnType)); + }); + + describe('ENS Domain', function () { + it("It should revert with AccountIsNotEnsOwner if the domain hash doesn't exist in ENS", async function () { + await expect(ensRegistrar.registerDomain(owner, NON_EXISTING_DOMAIN_HASH)) + .to.revertedWithCustomError(ensRegistrar, 'AccountIsNotEnsOwner') + .withArgs(owner.address, NON_EXISTING_DOMAIN_HASH); + + await expect( + ensRegistrar.registerDomainWithVerifier(NON_EXISTING_DOMAIN_HASH, ethers.ZeroAddress), + ) + .to.revertedWithCustomError(ensRegistrar, 'AccountIsNotEnsOwner') + .withArgs(owner.address, NON_EXISTING_DOMAIN_HASH); + }); + + it('It should revert with AccountIsNotEnsOwner if it is not the domain owner', async function () { + const nonDomainOwner = addresses[0]; + await expect(ensRegistrar.registerDomain(nonDomainOwner, DOMAIN_HASH)) + .to.revertedWithCustomError(ensRegistrar, 'AccountIsNotEnsOwner') + .withArgs(nonDomainOwner.address, DOMAIN_HASH); + + await expect( + ensRegistrar + .connect(nonDomainOwner) + .registerDomainWithVerifier(DOMAIN_HASH, ethers.ZeroAddress), + ) + .to.revertedWithCustomError(ensRegistrar, 'AccountIsNotEnsOwner') + .withArgs(nonDomainOwner.address, DOMAIN_HASH); + }); + + it('It should register a domain if it is the domain owner', async function () { + await ensRegistrar.registerDomain(owner, DOMAIN_HASH); + + expect(await sciRegistry.isDomainOwner(DOMAIN_HASH, owner)).to.be.true; + }); + + it('It should register a domain with verifier if it is the domain owner', async function () { + const verifier = addresses[0].address; + + await ensRegistrar.connect(owner).registerDomainWithVerifier(DOMAIN_HASH, verifier); + + expect(await sciRegistry.isDomainOwner(DOMAIN_HASH, owner)).to.be.true; + expect(await sciRegistry.domainVerifier(DOMAIN_HASH)).to.equal(verifier); + }); + }); +}); diff --git a/test/Registrars/SciRegistrar.test.ts b/test/Registrars/SciRegistrar.test.ts new file mode 100644 index 0000000..5141b36 --- /dev/null +++ b/test/Registrars/SciRegistrar.test.ts @@ -0,0 +1,52 @@ +import { expect } from 'chai'; +import { ethers, ignition } from 'hardhat'; +import { SciRegistrar, SciRegistry } from '../../types'; +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers'; +import { + SciRegistrarModule, + SciRegistrarModuleReturnType, +} from '../../ignition/modules/registrars/SciRegistrarModule'; +const DOMAIN_HASH = '0x77ebf9a801c579f50495cbb82e12145b476276f47b480b84c367a30b04d18e15'; + +describe('SciRegistrar', function () { + let user: HardhatEthersSigner; + let addresses: HardhatEthersSigner[]; + let sciRegistrar: SciRegistrar; + let sciRegistry: SciRegistry; + + beforeEach(async () => { + [user, ...addresses] = await ethers.getSigners(); + + ({ sciRegistrar, sciRegistry } = await (ignition.deploy( + SciRegistrarModule, + ) as unknown as SciRegistrarModuleReturnType)); + }); + + describe('Register domains', function () { + it('It should register a domain with verifier if it has the REGISTER_DOMAIN_ROLE role', async function () { + const verifier = addresses[0].address; + const domainOwner = addresses[1].address; + + await sciRegistrar + .connect(user) + .registerDomainWithVerifier(domainOwner, DOMAIN_HASH, verifier); + }); + + it('It should register a domain if it if it has the REGISTER_DOMAIN_ROLE role', async function () { + await sciRegistrar.registerDomain(user, DOMAIN_HASH); + + expect(await sciRegistry.isDomainOwner(DOMAIN_HASH, user)).to.be.true; + }); + + it("It should reveret with AccessControlUnauthorizedAccount if it doesn't have the REGISTER_DOMAIN_ROLE role", async function () { + await sciRegistrar.revokeRole(await sciRegistrar.REGISTER_DOMAIN_ROLE(), user.address); + await expect(sciRegistrar.registerDomain(user, DOMAIN_HASH)) + .to.revertedWithCustomError(sciRegistrar, 'AccessControlUnauthorizedAccount') + .withArgs(user.address, await sciRegistrar.REGISTER_DOMAIN_ROLE()); + + await expect(sciRegistrar.registerDomainWithVerifier(user, DOMAIN_HASH, ethers.ZeroAddress)) + .to.revertedWithCustomError(sciRegistrar, 'AccessControlUnauthorizedAccount') + .withArgs(user.address, await sciRegistrar.REGISTER_DOMAIN_ROLE()); + }); + }); +}); diff --git a/test/Registry.test.ts b/test/Registry.test.ts index 1400fb9..3477da8 100644 --- a/test/Registry.test.ts +++ b/test/Registry.test.ts @@ -1,108 +1,124 @@ -import { ethers } from 'hardhat'; -import { - Registry, - AlwaysTrueAuthorizer, - AlwaysFalseAuthorizer, - PublicListVerifier, -} from '../types'; +import { ethers, ignition } from 'hardhat'; +import { SciRegistry, PublicListVerifier } from '../types'; import { expect } from 'chai'; import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers'; -import { ADD_AUTHORIZER_ROLE, ADD_TRUSTED_VERIFIER_ROLE } from '../utils/roles'; +import { + SciRegistryModule, + SciRegistryModuleReturnType, +} from '../ignition/modules/registry/SciRegistryModule'; -const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'; -const ALWAYS_TRUE_AUTHORIZER_ID = 1; -const ALWAYS_FALSE_AUTHORIZER_ID = 2; -const DOMAIN = 'sci.domains'; const DOMAIN_HASH = '0x46b1531f39389a596f2e173d7e93cd0eaeafaf690c2a196e3f9054ce4cb20843'; -const DOMAIN_WITH_WILDCARD_HASH = - '0xb33e1da180b89d355773c7722ac9fa01c5b52aef3e3b6ceb67b664ccf75b382c'; describe('Registry', function () { let owner: HardhatEthersSigner; + let registrar: HardhatEthersSigner; let addresses: HardhatEthersSigner[]; - let registry: Registry; - let alwaysTrueAuthorizer: AlwaysTrueAuthorizer; - let alwaysFalseAuthorizer: AlwaysFalseAuthorizer; + let registry: SciRegistry; let publicListverifier: PublicListVerifier; beforeEach(async () => { - [owner, ...addresses] = await ethers.getSigners(); - - const NameHashFactory = await ethers.getContractFactory('NameHash'); - const nameHash = await NameHashFactory.deploy(); + [owner, registrar, ...addresses] = await ethers.getSigners(); - const RegistryFactory = await ethers.getContractFactory('Registry'); - registry = await RegistryFactory.deploy(await nameHash.getAddress()); - await registry.grantRole(ADD_AUTHORIZER_ROLE, owner.address); - await registry.grantRole(ADD_TRUSTED_VERIFIER_ROLE, owner.address); + ({ sciRegistry: registry } = await (ignition.deploy( + SciRegistryModule, + ) as unknown as SciRegistryModuleReturnType)); - const AlwaysTrueAuthorizer = await ethers.getContractFactory('AlwaysTrueAuthorizer'); - alwaysTrueAuthorizer = await AlwaysTrueAuthorizer.deploy(); - await registry.setAuthorizer(ALWAYS_TRUE_AUTHORIZER_ID, alwaysTrueAuthorizer); - - const AlwaysFalseAuthorizer = await ethers.getContractFactory('AlwaysFalseAuthorizer'); - alwaysFalseAuthorizer = await AlwaysFalseAuthorizer.deploy(); - await registry.setAuthorizer(ALWAYS_FALSE_AUTHORIZER_ID, alwaysFalseAuthorizer); + await registry.grantRole(await registry.REGISTRAR_ROLE(), registrar.address); + await registry.grantRole(await registry.PAUSER_ROLE(), owner.address); const PubicListVerifierFactory = await ethers.getContractFactory('PublicListVerifier'); publicListverifier = await PubicListVerifierFactory.deploy(registry.target); }); - describe('Add authorizer', function () { - it('Should only let the owner add an authorizer', async function () { - await registry.setAuthorizer(ALWAYS_TRUE_AUTHORIZER_ID, alwaysTrueAuthorizer); - expect(await registry.authorizers(ALWAYS_TRUE_AUTHORIZER_ID)).to.equal( - alwaysTrueAuthorizer.target, - ); + describe('Manage Registrars', function () { + it('Should only let an address with REGISTRAR_MANAGER_ROLE add a REGISTRAR_ROLE', async function () { + const accountWithoutAddRegistrarRole = addresses[0]; + const newRegistrar = addresses[1]; + expect(await registry.hasRole(await registry.REGISTRAR_MANAGER_ROLE(), owner)).to.be.true; + expect( + await registry.hasRole( + await registry.REGISTRAR_MANAGER_ROLE(), + accountWithoutAddRegistrarRole, + ), + ).to.be.false; + expect(await registry.hasRole(await registry.REGISTRAR_ROLE(), newRegistrar)).to.be.false; - const notOwner = addresses[1]; await expect( - registry.connect(notOwner).setAuthorizer(ALWAYS_TRUE_AUTHORIZER_ID, alwaysTrueAuthorizer), + registry + .connect(accountWithoutAddRegistrarRole) + .grantRole(await registry.REGISTRAR_ROLE(), newRegistrar), ) - .revertedWithCustomError(registry, 'AccessControlUnauthorizedAccount') - .withArgs(notOwner.address, ADD_AUTHORIZER_ROLE); + .to.revertedWithCustomError(registry, 'AccessControlUnauthorizedAccount') + .withArgs(accountWithoutAddRegistrarRole.address, await registry.REGISTRAR_MANAGER_ROLE()); + + await registry.connect(owner).grantRole(await registry.REGISTRAR_ROLE(), newRegistrar); + expect(await registry.hasRole(await registry.REGISTRAR_ROLE(), registrar)).to.be.true; }); - it('Should emit an event when an authorizer is added', async function () { - await expect(registry.setAuthorizer(ALWAYS_TRUE_AUTHORIZER_ID, alwaysTrueAuthorizer)) - .to.emit(registry, 'AuthorizerSet') - .withArgs(ALWAYS_TRUE_AUTHORIZER_ID, alwaysTrueAuthorizer.target, owner.address); + it('Should only let an address with REGISTRAR_MANAGER_ROLE remove a REGISTRAR_ROLE', async function () { + const accountWithoutAddRegistrarRole = addresses[0]; + expect(await registry.hasRole(await registry.REGISTRAR_MANAGER_ROLE(), owner)).to.be.true; + expect( + await registry.hasRole( + await registry.REGISTRAR_MANAGER_ROLE(), + accountWithoutAddRegistrarRole, + ), + ).to.be.false; + expect(await registry.hasRole(await registry.REGISTRAR_ROLE(), registrar)).to.be.true; + + await expect( + registry + .connect(accountWithoutAddRegistrarRole) + .revokeRole(await registry.REGISTRAR_ROLE(), registrar), + ) + .to.revertedWithCustomError(registry, 'AccessControlUnauthorizedAccount') + .withArgs(accountWithoutAddRegistrarRole.address, await registry.REGISTRAR_MANAGER_ROLE()); + + await registry.connect(owner).revokeRole(await registry.REGISTRAR_ROLE(), registrar); + expect(await registry.hasRole(await registry.REGISTRAR_ROLE(), registrar)).to.be.false; }); }); describe('Registering domains', function () { - it('Should emit an event when a domain is registered', async function () { - const domainOwner = addresses[0]; + it("Shouldn't let a non registrar register a domain", async function () { + const domainOwner = addresses[1]; + expect(await registry.hasRole(await registry.REGISTRAR_ROLE(), domainOwner.address)).to.be + .false; + await expect(registry.connect(domainOwner).registerDomain(domainOwner, DOMAIN_HASH)) + .to.revertedWithCustomError(registry, 'AccessControlUnauthorizedAccount') + .withArgs(domainOwner.address, await registry.REGISTRAR_ROLE()); + }); + + it("Shouldn't let someone register a domain if the contract is paused", async function () { + const domainOwner = addresses[1]; + await registry.connect(owner).pause(); await expect( - registry - .connect(domainOwner) - .registerDomain(ALWAYS_TRUE_AUTHORIZER_ID, domainOwner, DOMAIN, false), - ) + registry.connect(registrar).registerDomain(domainOwner, DOMAIN_HASH), + ).to.revertedWithCustomError(registry, 'EnforcedPause'); + }); + + it('Should emit an event when a domain is registered', async function () { + const domainOwner = addresses[1]; + await expect(registry.connect(registrar).registerDomain(domainOwner, DOMAIN_HASH)) .to.emit(registry, 'DomainRegistered') - .withArgs(ALWAYS_TRUE_AUTHORIZER_ID, domainOwner.address, DOMAIN_HASH, DOMAIN); + .withArgs(registrar.address, domainOwner.address, DOMAIN_HASH); }); it('Should emit an event when a domain is set', async function () { const domainOwner = addresses[0]; - await expect( - registry - .connect(domainOwner) - .registerDomain(ALWAYS_TRUE_AUTHORIZER_ID, domainOwner, DOMAIN, false), - ) + await expect(registry.connect(registrar).registerDomain(domainOwner, DOMAIN_HASH)) .to.emit(registry, 'OwnerSet') - .withArgs(domainOwner.address, DOMAIN_HASH, domainOwner.address); + .withArgs(registrar.address, DOMAIN_HASH, ethers.ZeroAddress, domainOwner.address); }); it('Should register a domain successfully', async function () { const domainOwner = addresses[0]; - const tx = await registry - .connect(domainOwner) - .registerDomain(ALWAYS_TRUE_AUTHORIZER_ID, domainOwner, DOMAIN, false); + const tx = await registry.connect(registrar).registerDomain(domainOwner, DOMAIN_HASH); const block = await tx.getBlock(); expect(await registry.domainHashToRecord(DOMAIN_HASH)).to.deep.equal([ domainOwner.address, - ZERO_ADDRESS, + ethers.ZeroAddress, BigInt(block?.timestamp!), BigInt(0), ]); @@ -112,8 +128,8 @@ describe('Registry', function () { const domainOwner = addresses[0]; const verifierAddress = addresses[1].address; const tx = await registry - .connect(domainOwner) - .registerDomainWithVerifier(ALWAYS_TRUE_AUTHORIZER_ID, DOMAIN, false, verifierAddress); + .connect(registrar) + .registerDomainWithVerifier(domainOwner, DOMAIN_HASH, verifierAddress); const block = await tx.getBlock(); expect(await registry.domainHashToRecord(DOMAIN_HASH)).to.deep.equal([ @@ -124,47 +140,15 @@ describe('Registry', function () { ]); }); - it('Should register a domain with verifier and wildcard successfully', async function () { + it("Shouldn't let someone register a domain with verifier if the contract is paused", async function () { const domainOwner = addresses[0]; const verifierAddress = addresses[1].address; - const tx = await registry - .connect(domainOwner) - .registerDomainWithVerifier(ALWAYS_TRUE_AUTHORIZER_ID, DOMAIN, true, verifierAddress); - const block = await tx.getBlock(); - - expect(await registry.domainHashToRecord(DOMAIN_WITH_WILDCARD_HASH)).to.deep.equal([ - domainOwner.address, - verifierAddress, - BigInt(block?.timestamp!), - BigInt(block?.timestamp!), - ]); - }); - - it('Should register a domain with wildcard successfully', async function () { - const domainOwner = addresses[0]; - const tx = await registry - .connect(domainOwner) - .registerDomain(ALWAYS_TRUE_AUTHORIZER_ID, domainOwner, DOMAIN, true); - - const block = await tx.getBlock(); - - expect(await registry.domainHashToRecord(DOMAIN_WITH_WILDCARD_HASH)).to.deep.equal([ - domainOwner.address, - ZERO_ADDRESS, - BigInt(block?.timestamp!), - BigInt(0), - ]); - }); - - it("Shouldn't register a domain if the authorizer returns false", async function () { - const notDomainOwner = addresses[0]; - expect( + await registry.connect(owner).pause(); + await expect( registry - .connect(notDomainOwner) - .registerDomain(ALWAYS_FALSE_AUTHORIZER_ID, notDomainOwner, DOMAIN, true), - ) - .revertedWithCustomError(registry, 'AccountIsNotAuthorizeToRegisterDomain') - .withArgs(notDomainOwner.address, DOMAIN); + .connect(registrar) + .registerDomainWithVerifier(domainOwner, DOMAIN_HASH, verifierAddress), + ).to.revertedWithCustomError(registry, 'EnforcedPause'); }); }); @@ -178,9 +162,7 @@ describe('Registry', function () { beforeEach(async () => { domainOwner = addresses[0]; notDomainOwner = addresses[1]; - await registry - .connect(domainOwner) - .registerDomain(ALWAYS_TRUE_AUTHORIZER_ID, domainOwner, DOMAIN, false); + await registry.connect(registrar).registerDomain(domainOwner, DOMAIN_HASH); }); it('Should return false if the domain is not registered', async function () { @@ -200,23 +182,21 @@ describe('Registry', function () { }); it('Should return the zero address if it was not register', async function () { - expect(await registry.domainOwner(ANOTHER_DOMAIN_HASH)).to.equal(ZERO_ADDRESS); + expect(await registry.domainOwner(ANOTHER_DOMAIN_HASH)).to.equal(ethers.ZeroAddress); }); }); - describe('Add Verifier', function () { + describe('Set Verifier', function () { let domainOwner: HardhatEthersSigner; let notDomainOwner: HardhatEthersSigner; beforeEach(async () => { domainOwner = addresses[0]; notDomainOwner = addresses[1]; - await registry - .connect(domainOwner) - .registerDomain(ALWAYS_TRUE_AUTHORIZER_ID, domainOwner, DOMAIN, false); + await registry.connect(registrar).registerDomain(domainOwner, DOMAIN_HASH); }); - it('Should only let the owner of the domain add a verifier', async function () { + it('Should only let the owner of the domain set a verifier', async function () { await registry.connect(domainOwner).setVerifier(DOMAIN_HASH, publicListverifier.target); expect(await registry.domainVerifier(DOMAIN_HASH)).to.equal(publicListverifier.target); @@ -227,6 +207,14 @@ describe('Registry', function () { .withArgs(notDomainOwner.address, DOMAIN_HASH); }); + it("Should't set a verifier if it is paused", async function () { + await registry.connect(owner).pause(); + + await expect( + registry.connect(domainOwner).setVerifier(DOMAIN_HASH, publicListverifier.target), + ).to.revertedWithCustomError(registry, 'EnforcedPause'); + }); + it('Should add the date when a verifier is set', async function () { const tx = await registry .connect(domainOwner) @@ -246,7 +234,46 @@ describe('Registry', function () { registry.connect(domainOwner).setVerifier(DOMAIN_HASH, publicListverifier.target), ) .to.emit(registry, 'VerifierSet') - .withArgs(domainOwner.address, DOMAIN_HASH, publicListverifier.target); + .withArgs(domainOwner.address, DOMAIN_HASH, ethers.ZeroAddress, publicListverifier.target); + }); + }); + + describe('Pausable', function () { + it('Should only let an address with the PAUSER_ROLE pause', async function () { + const accountWithPauserRole = owner; + const accountWithoutPauserRole = addresses[0]; + + expect(await registry.hasRole(await registry.PAUSER_ROLE(), accountWithPauserRole.address)).to + .be.true; + expect(await registry.hasRole(await registry.PAUSER_ROLE(), accountWithoutPauserRole.address)) + .to.be.false; + expect(await registry.paused()).to.be.false; + + await expect(registry.connect(accountWithoutPauserRole).pause()) + .to.revertedWithCustomError(registry, 'AccessControlUnauthorizedAccount') + .withArgs(accountWithoutPauserRole.address, await registry.PAUSER_ROLE()); + + await registry.connect(accountWithPauserRole).pause(); + expect(await registry.paused()).to.be.true; + }); + + it('Should only let an address with the PAUSER_ROLE unpause', async function () { + const accountWithPauserRole = owner; + const accountWithoutPauserRole = addresses[0]; + await registry.connect(accountWithPauserRole).pause(); + + expect(await registry.hasRole(await registry.PAUSER_ROLE(), accountWithPauserRole.address)).to + .be.true; + expect(await registry.hasRole(await registry.PAUSER_ROLE(), accountWithoutPauserRole.address)) + .to.be.false; + expect(await registry.paused()).to.be.true; + + await expect(registry.connect(accountWithoutPauserRole).unpause()) + .to.revertedWithCustomError(registry, 'AccessControlUnauthorizedAccount') + .withArgs(accountWithoutPauserRole.address, await registry.PAUSER_ROLE()); + + await registry.connect(accountWithPauserRole).unpause(); + expect(await registry.paused()).to.be.false; }); }); }); diff --git a/test/SCI.test.ts b/test/SCI.test.ts index f6af83c..5782ab2 100644 --- a/test/SCI.test.ts +++ b/test/SCI.test.ts @@ -1,79 +1,126 @@ import { expect } from 'chai'; -import { ethers, upgrades } from 'hardhat'; -import { - AlwaysFalseAuthorizer, - AlwaysTrueAuthorizer, - PublicListVerifier, - Registry, - SCI, -} from '../types'; +import { ethers, ignition } from 'hardhat'; +import { PublicListVerifier, SciRegistry, SCI, Proxy } from '../types'; import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers'; -import { ADD_AUTHORIZER_ROLE, ADD_TRUSTED_VERIFIER_ROLE } from '../utils/roles'; +import { Block } from 'ethers'; +import { + PublicListVerifierModule, + PublicListVerifierModuleReturnType, +} from '../ignition/modules/verifiers/PublicListVerifierModule'; +import { SciModule, SciModuleReturnType } from '../ignition/modules/sci/SciModule'; -const ALWAYS_TRUE_AUTHORIZER_ID = 1; -const ALWAYS_FALSE_AUTHORIZER_ID = 2; +const DOMAIN_HASH = '0x77ebf9a801c579f50495cbb82e12145b476276f47b480b84c367a30b04d18e15'; +const CHAIN = 1; describe('SCI', function () { let owner: HardhatEthersSigner; + let verifiedAccount: HardhatEthersSigner; let addresses: HardhatEthersSigner[]; let sci: SCI; - let registry: Registry; - let alwaysTrueAuthorizer: AlwaysTrueAuthorizer; - let alwaysFalseAuthorizer: AlwaysFalseAuthorizer; - let publicListverifier: PublicListVerifier; + let proxy: Proxy; + let sciRegistry: SciRegistry; + let publicListVerifier: PublicListVerifier; + let verififcationTime: number; + let registrationBlock: Block; beforeEach(async () => { - [owner, ...addresses] = await ethers.getSigners(); + [owner, verifiedAccount, ...addresses] = await ethers.getSigners(); + + ({ publicListVerifier, sciRegistry } = await (ignition.deploy( + PublicListVerifierModule, + ) as unknown as PublicListVerifierModuleReturnType)); - const NameHashFactory = await ethers.getContractFactory('NameHash'); - const nameHash = await NameHashFactory.deploy(); + ({ sci } = await (ignition.deploy(SciModule) as unknown as SciModuleReturnType)); - const RegistryFactory = await ethers.getContractFactory('Registry'); - registry = await RegistryFactory.deploy(await nameHash.getAddress()); - await registry.grantRole(ADD_AUTHORIZER_ROLE, owner.address); - await registry.grantRole(ADD_TRUSTED_VERIFIER_ROLE, owner.address); + // We need to set up this because the sci module deploys another + // registry for the tests + sci.setRegistry(sciRegistry.target); + sciRegistry.grantRole(await sciRegistry.REGISTRAR_ROLE(), owner); - const AlwaysTrueAuthorizer = await ethers.getContractFactory('AlwaysTrueAuthorizer'); - alwaysTrueAuthorizer = await AlwaysTrueAuthorizer.deploy(); - await registry.setAuthorizer(ALWAYS_TRUE_AUTHORIZER_ID, alwaysTrueAuthorizer); + // Register domain with verifiers + let tx = await sciRegistry.registerDomainWithVerifier( + owner, + DOMAIN_HASH, + publicListVerifier.target, + ); + // This will always return a block + registrationBlock = (await tx.getBlock())!; - const AlwaysFalseAuthorizer = await ethers.getContractFactory('AlwaysFalseAuthorizer'); - alwaysFalseAuthorizer = await AlwaysFalseAuthorizer.deploy(); - await registry.setAuthorizer(ALWAYS_FALSE_AUTHORIZER_ID, alwaysFalseAuthorizer); + // Register the account + tx = await publicListVerifier.addAddresses(DOMAIN_HASH, [verifiedAccount.address], [[CHAIN]]); + verififcationTime = (await tx.getBlock())!.timestamp; + }); - const PubicListVerifierFactory = await ethers.getContractFactory('PublicListVerifier'); - publicListverifier = await PubicListVerifierFactory.deploy(registry.target); + describe('Initializable', function () { + it("Should't be able to initialize a second time", async function () { + await expect(sci.initialize(owner.address, sciRegistry.target)).to.revertedWithCustomError( + sci, + 'InvalidInitialization', + ); + }); + }); - const SCIFactory = await ethers.getContractFactory('SCI'); - sci = (await upgrades.deployProxy(SCIFactory, [registry.target, nameHash.target], { - initializer: 'initialize', - })) as unknown as SCI; - await sci.waitForDeployment(); + describe('Ownable', function () { + it('Should set the right ownable in the deployment', async function () { + expect(await sci.owner()).to.equal(owner.address); + }); }); - describe('Is Authorized', function () { - it('It should return true if owner has the IS_AUTHORIZED role ', async function () { + describe('Set Registry', function () { + it('Only the owner is allow to set a new Registry', async function () { + const notTheOwner = addresses[0]; + expect(await sci.owner()).to.not.equal(notTheOwner); + + const newRegistryAddress = addresses[1].address; + expect(await sci.registry()).to.not.equal(newRegistryAddress); + + await expect(sci.connect(notTheOwner).setRegistry(newRegistryAddress)) + .to.revertedWithCustomError(sci, 'OwnableUnauthorizedAccount') + .withArgs(notTheOwner.address); + + await sci.connect(owner).setRegistry(newRegistryAddress); + expect(await sci.registry()).to.equal(newRegistryAddress); + }); + + it('Should emit RegistrySet when the registry is changed', async function () { + const newRegistryAddress = addresses[1].address; + await expect(sci.connect(owner).setRegistry(newRegistryAddress)) + .to.emit(sci, 'RegistrySet') + .withArgs(sciRegistry.target, newRegistryAddress); + }); + }); + + describe('Verification', function () { + it('Should return the verification time if the address if verified', async function () { expect( - await sci.isVerifiedForMultipleDomains(['secureci.xyz', 'otro.com'], registry.target, 1), - ).to.deep.equal([false, false]); + await sci.isVerifiedForDomainHash(DOMAIN_HASH, verifiedAccount.address, CHAIN), + ).to.be.equal(verififcationTime); + }); + + it('Should return 0 if the address if not verified', async function () { + expect( + await sci.isVerifiedForDomainHash(DOMAIN_HASH, addresses[0].address, CHAIN), + ).to.be.equal(0); + }); + + it('Should return accordingly when verifying multiple addresses', async function () { + expect( + await sci.isVerifiedForMultipleDomainHashes( + [DOMAIN_HASH, ethers.ZeroHash], + verifiedAccount, + CHAIN, + ), + ).to.deep.equal([verififcationTime, 0]); }); }); - describe('Domain info', function () { - it.only('It should return the domain info for a registered domains', async function () { - const domain = 'secureci.xyz'; - const tx = await registry.registerDomainWithVerifier( - ALWAYS_TRUE_AUTHORIZER_ID, - domain, - false, - publicListverifier.target, - ); - const block = await tx.getBlock(); - expect(await sci.domainToRecord(domain)).to.deep.equal([ + describe('Domain', function () { + it('It should return the domain info for a registered domains', async function () { + expect(await sci.domainHashToRecord(DOMAIN_HASH)).to.deep.equal([ owner.address, - publicListverifier.target, - block?.timestamp, - block?.timestamp, + publicListVerifier.target, + registrationBlock.timestamp, + registrationBlock.timestamp, ]); }); }); diff --git a/test/authorizers/EnsAuthorizer.test.ts b/test/authorizers/EnsAuthorizer.test.ts deleted file mode 100644 index aa2788c..0000000 --- a/test/authorizers/EnsAuthorizer.test.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { expect } from 'chai'; -import { ethers } from 'hardhat'; -import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers'; -import { keccak256, namehash, toUtf8Bytes } from 'ethers'; -import { ENSAuthorizer } from '../../types'; - -const DOMAIN_HASH = '0x77ebf9a801c579f50495cbb82e12145b476276f47b480b84c367a30b04d18e15'; -const OTHER_DOMAIN_HASH = '0xfcec0ff58c10be0e399a3a51186968513cc3a4c572a51d688ff338b3fbf6a7f9'; - -describe('EnsAuthorizer', function () { - let owner: HardhatEthersSigner; - let addresses: HardhatEthersSigner[]; - let ensAuthorizer: ENSAuthorizer; - - beforeEach(async () => { - [owner, ...addresses] = await ethers.getSigners(); - - const EnsFactory = await ethers.getContractFactory('ENSRegistry'); - const ens = await EnsFactory.deploy(); - // Ens Authorization Contract Deployment - const EnsAuthorizer = await ethers.getContractFactory('ENSAuthorizer'); - await ens.setSubnodeOwner( - '0x0000000000000000000000000000000000000000000000000000000000000000', - keccak256(toUtf8Bytes('eth')), - owner.address, - ); - await ens.setSubnodeOwner(namehash('eth'), keccak256(toUtf8Bytes('a')), owner.address); - ensAuthorizer = await EnsAuthorizer.deploy(ens.target); - }); - - describe('ENS Domain', function () { - it("It should return false if the domain hash doesn't exist in ENS", async function () { - expect(await ensAuthorizer.isAuthorized(owner, DOMAIN_HASH)).to.false; - }); - - it('It should return false if it is not the domain owner', async function () { - expect(await ensAuthorizer.isAuthorized(addresses[0].address, OTHER_DOMAIN_HASH)).to.false; - }); - - it('It should return true if it is the domain owner', async function () { - expect(await ensAuthorizer.isAuthorized(owner, OTHER_DOMAIN_HASH)).to.true; - }); - }); -}); diff --git a/test/authorizers/SCIAuthorizer.test.ts b/test/authorizers/SCIAuthorizer.test.ts deleted file mode 100644 index 0470fad..0000000 --- a/test/authorizers/SCIAuthorizer.test.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { expect } from 'chai'; -import { ethers } from 'hardhat'; -import { SCIAuthorizer } from '../../types'; -import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers'; -import { IS_AUTHORIZED } from '../../utils/roles'; - -const DOMAIN_HASH = '0x77ebf9a801c579f50495cbb82e12145b476276f47b480b84c367a30b04d18e15'; - -describe('SCIAuthorizer', function () { - let owner: HardhatEthersSigner; - let addresses: HardhatEthersSigner[]; - let sciAuthorizer: SCIAuthorizer; - - beforeEach(async () => { - [owner, ...addresses] = await ethers.getSigners(); - // Ens Authorization Contract Deployment - const SCIAuthorizerFactory = await ethers.getContractFactory('SCIAuthorizer'); - sciAuthorizer = await SCIAuthorizerFactory.deploy(); - }); - - describe('Is Authorized', function () { - it('It should return true if owner has the IS_AUTHORIZED role ', async function () { - await sciAuthorizer.grantRole(IS_AUTHORIZED, owner.address); - expect(await sciAuthorizer.isAuthorized(owner, DOMAIN_HASH)).to.true; - }); - - it("It should return false if is doesn't have the IS_AUTHORIZED role", async function () { - expect(await sciAuthorizer.isAuthorized(owner, DOMAIN_HASH)).to.false; - }); - }); -}); diff --git a/test/utils/NameHash.ts b/test/utils/NameHash.ts deleted file mode 100644 index 3579e9d..0000000 --- a/test/utils/NameHash.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ethers } from 'hardhat'; -import { NameHash } from '../../types'; -import { expect } from 'chai'; - -describe('RegistryV0', function () { - let nameHash: NameHash; - - beforeEach(async () => { - const NameHashFactory = await ethers.getContractFactory('NameHash'); - nameHash = await NameHashFactory.deploy(); - }); - - it('Should calculate the hash of a domain correctly', async function () { - expect(await nameHash.getDomainHash('domain.com')).to.equal( - '0xea283d6b921e8f457d6a4673799e5b28cdaaadd42fe38ea8146303877d9c2d41', - ); - }); - - it('Should calculate the hash of a subdomain correctly', async function () { - expect(await nameHash.getDomainHash('subdomain.domain.com')).to.equal( - '0x39a4b9e7030e220d2f86efb55497fb49d496bebd3693eb68faeca477ace716e9', - ); - }); -}); diff --git a/test/verifiers/PublicListVerifier.test.ts b/test/verifiers/PublicListVerifier.test.ts index 1b33a37..2bc4a74 100644 --- a/test/verifiers/PublicListVerifier.test.ts +++ b/test/verifiers/PublicListVerifier.test.ts @@ -1,13 +1,14 @@ -import { ethers } from 'hardhat'; -import { ADD_AUTHORIZER_ROLE } from '../../utils/roles'; +import { ethers, ignition } from 'hardhat'; import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers'; -import { AlwaysTrueAuthorizer, PublicListVerifier, Registry } from '../../types'; +import { PublicListVerifier, SciRegistry } from '../../types'; import { expect } from 'chai'; import { MaxUint256 } from 'ethers'; +import { + PublicListVerifierModule, + PublicListVerifierModuleReturnType, +} from '../../ignition/modules/verifiers/PublicListVerifierModule'; -const ALWAYS_TRUE_AUTHORIZER_ID = 1; const CHAIN_ID = 1; -const DOMAIN = 'secureci.xyz'; const DOMAIN_HASH = '0x77ebf9a801c579f50495cbb82e12145b476276f47b480b84c367a30b04d18e15'; const DOMAIN_WITH_WILDCARD_HASH = '0x1716343d0689cbd485fdf69796462e95bb6ff7a1249660b9fcf2fdd6c6c04f0e'; @@ -16,28 +17,20 @@ describe('Public List Verifier', function () { let owner: HardhatEthersSigner; let domainOwner: HardhatEthersSigner; let addresses: HardhatEthersSigner[]; - let registry: Registry; - let alwaysTrueAuthorizer: AlwaysTrueAuthorizer; - let publicListverifier: PublicListVerifier; + let sciRegistry: SciRegistry; + let publicListVerifier: PublicListVerifier; beforeEach(async () => { [owner, domainOwner, ...addresses] = await ethers.getSigners(); - const NameHashFactory = await ethers.getContractFactory('NameHash'); - const nameHash = await NameHashFactory.deploy(); + ({ publicListVerifier, sciRegistry } = await (ignition.deploy( + PublicListVerifierModule, + ) as unknown as PublicListVerifierModuleReturnType)); - const RegistryFactory = await ethers.getContractFactory('Registry'); - registry = await RegistryFactory.deploy(await nameHash.getAddress()); - await registry.grantRole(ADD_AUTHORIZER_ROLE, owner.address); + sciRegistry.grantRole(await sciRegistry.REGISTRAR_ROLE(), owner.address); + sciRegistry.grantRole(await sciRegistry.REGISTRAR_ROLE(), domainOwner.address); - const AlwaysTrueAuthorizer = await ethers.getContractFactory('AlwaysTrueAuthorizer'); - alwaysTrueAuthorizer = await AlwaysTrueAuthorizer.deploy(); - await registry.setAuthorizer(ALWAYS_TRUE_AUTHORIZER_ID, alwaysTrueAuthorizer); - - const PubicListVerifierFactory = await ethers.getContractFactory('PublicListVerifier'); - publicListverifier = await PubicListVerifierFactory.deploy(registry.target); - - await registry.registerDomain(ALWAYS_TRUE_AUTHORIZER_ID, domainOwner, DOMAIN, false); + await sciRegistry.registerDomain(domainOwner, DOMAIN_HASH); }); describe('Add Addresses', function () { @@ -45,18 +38,19 @@ describe('Public List Verifier', function () { const notOwner = addresses[0]; const chainId = 1; await expect( - publicListverifier + publicListVerifier .connect(notOwner) - .addAddresses(DOMAIN_HASH, [registry.target], [[chainId]]), + .addAddresses(DOMAIN_HASH, [sciRegistry.target], [[chainId]]), ) - .revertedWithCustomError(registry, 'AccountIsNotDomainOwner') + .revertedWithCustomError(sciRegistry, 'AccountIsNotDomainOwner') .withArgs(notOwner.address, DOMAIN_HASH); - await publicListverifier + const tx = await publicListVerifier .connect(domainOwner) - .addAddresses(DOMAIN_HASH, [registry.target], [[chainId]]); - expect(await publicListverifier.verifiedContracts(DOMAIN_HASH, registry.target, CHAIN_ID)).to - .be.true; + .addAddresses(DOMAIN_HASH, [sciRegistry.target], [[chainId]]); + expect( + await publicListVerifier.verifiedContracts(DOMAIN_HASH, sciRegistry.target, CHAIN_ID), + ).to.be.equal((await tx.getBlock())!.timestamp); }); }); @@ -64,62 +58,74 @@ describe('Public List Verifier', function () { it('Should let only the owner of the domain remove addresses for the domain', async function () { const notOwner = addresses[0]; const chainId = 1; - await publicListverifier + await publicListVerifier .connect(domainOwner) - .addAddresses(DOMAIN_HASH, [registry.target], [[chainId]]); + .addAddresses(DOMAIN_HASH, [sciRegistry.target], [[chainId]]); await expect( - publicListverifier + publicListVerifier .connect(notOwner) - .removeAddresses(DOMAIN_HASH, [registry.target], [[chainId]]), + .removeAddresses(DOMAIN_HASH, [sciRegistry.target], [[chainId]]), ) - .revertedWithCustomError(registry, 'AccountIsNotDomainOwner') + .revertedWithCustomError(sciRegistry, 'AccountIsNotDomainOwner') .withArgs(notOwner.address, DOMAIN_HASH); - await publicListverifier + await publicListVerifier .connect(domainOwner) - .removeAddresses(DOMAIN_HASH, [registry.target], [[chainId]]); - expect(await publicListverifier.verifiedContracts(DOMAIN_HASH, registry.target, CHAIN_ID)).to - .be.false; + .removeAddresses(DOMAIN_HASH, [sciRegistry.target], [[chainId]]); + expect( + await publicListVerifier.verifiedContracts(DOMAIN_HASH, sciRegistry.target, CHAIN_ID), + ).to.be.equal(0); }); }); describe('Verify Address', function () { + let verificationTime: number; beforeEach(async () => { - await publicListverifier + const tx = await publicListVerifier .connect(domainOwner) - .addAddresses(DOMAIN_HASH, [registry.target], [[1]]); + .addAddresses(DOMAIN_HASH, [sciRegistry.target], [[1]]); + verificationTime = (await tx.getBlock())!.timestamp; }); - it('Should return true for a verified address', async function () { - expect(await publicListverifier.isVerified(DOMAIN_HASH, registry.target, CHAIN_ID)).to.be - .true; + it('Should return the verification time for a verified address', async function () { + expect( + await publicListVerifier.isVerified(DOMAIN_HASH, sciRegistry.target, CHAIN_ID), + ).to.be.equal(verificationTime); }); - it('Should return true for any chain if it is with the multi chain id', async function () { - expect(await publicListverifier.isVerified(DOMAIN_HASH, registry.target, CHAIN_ID + 1)).to.be - .false; - await publicListverifier + it('Should return the verification time for any chain if it is with the multi chain id', async function () { + expect( + await publicListVerifier.isVerified(DOMAIN_HASH, sciRegistry.target, CHAIN_ID + 1), + ).to.be.equal(0); + const tx = await publicListVerifier .connect(domainOwner) - .addAddresses(DOMAIN_HASH, [registry.target], [[MaxUint256]]); - expect(await publicListverifier.isVerified(DOMAIN_HASH, registry.target, CHAIN_ID + 1)).to.be - .true; + .addAddresses(DOMAIN_HASH, [sciRegistry.target], [[MaxUint256]]); + expect( + await publicListVerifier.isVerified(DOMAIN_HASH, sciRegistry.target, CHAIN_ID + 1), + ).to.be.equal((await tx.getBlock())!.timestamp); }); - it('Should return false for a verified address in a wrong chain', async function () { - expect(await publicListverifier.isVerified(DOMAIN_HASH, registry.target, CHAIN_ID + 1)).to.be - .false; + it('Should return 0 for a verified address in a wrong chain', async function () { + expect( + await publicListVerifier.isVerified(DOMAIN_HASH, sciRegistry.target, CHAIN_ID + 1), + ).to.be.equal(0); }); - it('Should return false for an unverified address', async function () { - expect(await publicListverifier.isVerified(DOMAIN_HASH, publicListverifier.target, CHAIN_ID)) - .to.be.false; + it('Should return 0 for an unverified address', async function () { + expect( + await publicListVerifier.isVerified(DOMAIN_HASH, publicListVerifier.target, CHAIN_ID), + ).to.be.equal(0); }); - it('Should return false for an unregistered domain', async function () { + it('Should return 0 for an unregistered domain', async function () { expect( - await publicListverifier.isVerified(DOMAIN_WITH_WILDCARD_HASH, registry.target, CHAIN_ID), - ).to.be.false; + await publicListVerifier.isVerified( + DOMAIN_WITH_WILDCARD_HASH, + sciRegistry.target, + CHAIN_ID, + ), + ).to.be.equal(0); }); }); }); diff --git a/tsconfig.json b/tsconfig.json index e667aec..19e07b2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,5 +10,5 @@ "declaration": true, "declarationMap": true, "outDir": "./dist", - }, + } } diff --git a/utils/roles.ts b/utils/roles.ts deleted file mode 100644 index 1f1e971..0000000 --- a/utils/roles.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ethers } from 'hardhat'; - -export const ADD_AUTHORIZER_ROLE = ethers.keccak256(Buffer.from('ADD_AUTHORIZER_ROLE')); -export const ADD_TRUSTED_VERIFIER_ROLE = ethers.keccak256(Buffer.from('ADD_TRUSTED_VERIFIER_ROLE')); - -export const IS_AUTHORIZED = ethers.keccak256(Buffer.from('IS_AUTHORIZED')); -export const DEFAULT_ADMIN_ROLE = - '0x0000000000000000000000000000000000000000000000000000000000000000'; diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 9b96d17..0000000 --- a/yarn.lock +++ /dev/null @@ -1,6475 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@adraffy/ens-normalize@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" - integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== - -"@aws-crypto/sha256-js@1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz#02acd1a1fda92896fc5a28ec7c6e164644ea32fc" - integrity sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g== - dependencies: - "@aws-crypto/util" "^1.2.2" - "@aws-sdk/types" "^3.1.0" - tslib "^1.11.1" - -"@aws-crypto/util@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-1.2.2.tgz#b28f7897730eb6538b21c18bd4de22d0ea09003c" - integrity sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg== - dependencies: - "@aws-sdk/types" "^3.1.0" - "@aws-sdk/util-utf8-browser" "^3.0.0" - tslib "^1.11.1" - -"@aws-sdk/types@^3.1.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.468.0.tgz#f97b34fc92a800d1d8b866f47693ae8f3d46517b" - integrity sha512-rx/9uHI4inRbp2tw3Y4Ih4PNZkVj32h7WneSg3MVgVjAoVD5Zti9KhS5hkvsBxfgmQmg0AQbE+b1sy5WGAgntA== - dependencies: - "@smithy/types" "^2.7.0" - tslib "^2.5.0" - -"@aws-sdk/util-utf8-browser@^3.0.0": - version "3.259.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" - integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== - dependencies: - tslib "^2.3.1" - -"@babel/code-frame@^7.0.0": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== - dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@ensdomains/buffer@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@ensdomains/buffer/-/buffer-0.1.1.tgz#6c275ba7e457e935405b67876f1f0d980c8baa63" - integrity sha512-92SfSiNS8XorgU7OUBHo/i1ZU7JV7iz/6bKuLPNVsMxV79/eI7fJR6jfJJc40zAHjs3ha+Xo965Idomlq3rqnw== - -"@ensdomains/ens-contracts@1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@ensdomains/ens-contracts/-/ens-contracts-1.1.4.tgz#da3ecb1c204feaa8c349b4f1fb38a3461525486e" - integrity sha512-kjdcjaznMtE2lwjAVTX2irs8mgNgJCVuB5hnhFhiMaO8dR/tlHQ5UhtZjhSYRhkZd0hLXYrMkXp6thnwpG+ltg== - dependencies: - "@ensdomains/buffer" "^0.1.1" - "@ensdomains/solsha1" "0.0.3" - "@openzeppelin/contracts" "^4.1.0" - dns-packet "^5.3.0" - -"@ensdomains/solsha1@0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@ensdomains/solsha1/-/solsha1-0.0.3.tgz#fd479da9d40aadb59ff4fb4ec50632e7d2275a83" - integrity sha512-uhuG5LzRt/UJC0Ux83cE2rCKwSleRePoYdQVcqPN1wyf3/ekMzT/KZUF9+v7/AG5w9jlMLCQkUM50vfjr0Yu9Q== - dependencies: - hash-test-vectors "^1.3.2" - -"@ethereumjs/rlp@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" - integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== - -"@ethereumjs/util@^8.1.0": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" - integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== - dependencies: - "@ethereumjs/rlp" "^4.0.1" - ethereum-cryptography "^2.0.0" - micro-ftch "^0.3.1" - -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" - integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== - dependencies: - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" - integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/networks" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/web" "^5.7.0" - -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" - integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" - integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - -"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" - integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== - dependencies: - "@ethersproject/bytes" "^5.7.0" - -"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" - integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" - integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - bn.js "^5.2.1" - -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" - integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" - integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - -"@ethersproject/contracts@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" - integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== - dependencies: - "@ethersproject/abi" "^5.7.0" - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" - integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/base64" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" - integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/basex" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/pbkdf2" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wordlists" "^5.7.0" - -"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" - integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hdnode" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/pbkdf2" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" - integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== - dependencies: - "@ethersproject/bytes" "^5.7.0" - js-sha3 "0.8.0" - -"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" - integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== - -"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": - version "5.7.1" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" - integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" - integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" - integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/providers@5.7.2": - version "5.7.2" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" - integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/base64" "^5.7.0" - "@ethersproject/basex" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/networks" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/web" "^5.7.0" - bech32 "1.1.4" - ws "7.4.6" - -"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" - integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" - integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" - integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - hash.js "1.1.7" - -"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" - integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - bn.js "^5.2.1" - elliptic "6.5.4" - hash.js "1.1.7" - -"@ethersproject/solidity@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" - integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" - integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" - integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== - dependencies: - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - -"@ethersproject/units@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" - integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/wallet@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" - integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/hdnode" "^5.7.0" - "@ethersproject/json-wallets" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wordlists" "^5.7.0" - -"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": - version "5.7.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" - integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== - dependencies: - "@ethersproject/base64" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" - integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@fastify/busboy@^2.0.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" - integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" - integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== - -"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz#353ce4a76c83fadec272ea5674ede767650762fd" - integrity sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g== - -"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": - version "1.6.3" - resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.3.tgz#25b4eece2592132845d303e091bad9b04cdcfe03" - integrity sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ== - dependencies: - "@lit-labs/ssr-dom-shim" "^1.0.0" - -"@metamask/eth-sig-util@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" - integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== - dependencies: - ethereumjs-abi "^0.6.8" - ethereumjs-util "^6.2.1" - ethjs-util "^0.1.6" - tweetnacl "^1.0.3" - tweetnacl-util "^0.15.1" - -"@motionone/animation@^10.15.1", "@motionone/animation@^10.18.0": - version "10.18.0" - resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.18.0.tgz#868d00b447191816d5d5cf24b1cafa144017922b" - integrity sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw== - dependencies: - "@motionone/easing" "^10.18.0" - "@motionone/types" "^10.17.1" - "@motionone/utils" "^10.18.0" - tslib "^2.3.1" - -"@motionone/dom@^10.16.2", "@motionone/dom@^10.16.4": - version "10.18.0" - resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.18.0.tgz#7fd25dac04cab72def6d2b92b8e0cdc091576527" - integrity sha512-bKLP7E0eyO4B2UaHBBN55tnppwRnaE3KFfh3Ps9HhnAkar3Cb69kUCJY9as8LrccVYKgHA+JY5dOQqJLOPhF5A== - dependencies: - "@motionone/animation" "^10.18.0" - "@motionone/generators" "^10.18.0" - "@motionone/types" "^10.17.1" - "@motionone/utils" "^10.18.0" - hey-listen "^1.0.8" - tslib "^2.3.1" - -"@motionone/easing@^10.18.0": - version "10.18.0" - resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.18.0.tgz#7b82f6010dfee3a1bb0ee83abfbaff6edae0c708" - integrity sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg== - dependencies: - "@motionone/utils" "^10.18.0" - tslib "^2.3.1" - -"@motionone/generators@^10.18.0": - version "10.18.0" - resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.18.0.tgz#fe09ab5cfa0fb9a8884097feb7eb60abeb600762" - integrity sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg== - dependencies: - "@motionone/types" "^10.17.1" - "@motionone/utils" "^10.18.0" - tslib "^2.3.1" - -"@motionone/svelte@^10.16.2": - version "10.16.4" - resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.16.4.tgz#5daf117cf5b2576fc6dd487c5e0500938a742470" - integrity sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA== - dependencies: - "@motionone/dom" "^10.16.4" - tslib "^2.3.1" - -"@motionone/types@^10.15.1", "@motionone/types@^10.17.1": - version "10.17.1" - resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.17.1.tgz#cf487badbbdc9da0c2cb86ffc1e5d11147c6e6fb" - integrity sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A== - -"@motionone/utils@^10.15.1", "@motionone/utils@^10.18.0": - version "10.18.0" - resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.18.0.tgz#a59ff8932ed9009624bca07c56b28ef2bb2f885e" - integrity sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw== - dependencies: - "@motionone/types" "^10.17.1" - hey-listen "^1.0.8" - tslib "^2.3.1" - -"@motionone/vue@^10.16.2": - version "10.16.4" - resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.16.4.tgz#07d09e3aa5115ca0bcc0076cb9e5322775277c09" - integrity sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg== - dependencies: - "@motionone/dom" "^10.16.4" - tslib "^2.3.1" - -"@noble/curves@1.1.0", "@noble/curves@~1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d" - integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== - dependencies: - "@noble/hashes" "1.3.1" - -"@noble/curves@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" - integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== - dependencies: - "@noble/hashes" "1.3.2" - -"@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" - integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== - -"@noble/hashes@1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" - integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== - -"@noble/hashes@1.3.2", "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" - integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== - -"@noble/hashes@^1.3.3": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" - integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== - -"@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" - integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@nomicfoundation/edr-darwin-arm64@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.4.0.tgz#bbb43f0e01f40839b0bd38c2c443cb6910ae955f" - integrity sha512-7+rraFk9tCqvfemv9Ita5vTlSBAeO/S5aDKOgGRgYt0JEKZlrX161nDW6UfzMPxWl9GOLEDUzCEaYuNmXseUlg== - -"@nomicfoundation/edr-darwin-x64@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.4.0.tgz#b1ffcd9142418fd8498de34a7336b3f977907c86" - integrity sha512-+Hrc0mP9L6vhICJSfyGo/2taOToy1AIzVZawO3lU8Lf7oDQXfhQ4UkZnkWAs9SVu1eUwHUGGGE0qB8644piYgg== - -"@nomicfoundation/edr-linux-arm64-gnu@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.4.0.tgz#8173d16d4f6f2b3e82ba7096d2a1ea3619d8bfa7" - integrity sha512-4HUDMchNClQrVRfVTqBeSX92hM/3khCgpZkXP52qrnJPqgbdCxosOehlQYZ65wu0b/kaaZSyvACgvCLSQ5oSzQ== - -"@nomicfoundation/edr-linux-arm64-musl@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.4.0.tgz#b1ce293a7c3e0d9f70391e1aef1a82b83b997567" - integrity sha512-D4J935ZRL8xfnP3zIFlCI9jXInJ0loDUkCTLeCEbOf2uuDumWDghKNQlF1itUS+EHaR1pFVBbuwqq8hVK0dASg== - -"@nomicfoundation/edr-linux-x64-gnu@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.4.0.tgz#4c12c4e4bfd3d837f5663ad7cbf7cb6d5634ef83" - integrity sha512-6x7HPy+uN5Cb9N77e2XMmT6+QSJ+7mRbHnhkGJ8jm4cZvWuj2Io7npOaeHQ3YHK+TiQpTnlbkjoOIpEwpY3XZA== - -"@nomicfoundation/edr-linux-x64-musl@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.4.0.tgz#8842004aa1a47c504f10863687da28b65dca7baa" - integrity sha512-3HFIJSXgyubOiaN4MWGXx2xhTnhwlJk0PiSYNf9+L/fjBtcRkb2nM910ZJHTvqCb6OT98cUnaKuAYdXIW2amgw== - -"@nomicfoundation/edr-win32-x64-msvc@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.4.0.tgz#29d8bbb2edf9912a95f5453855cf17cdcb269957" - integrity sha512-CP4GsllEfXEz+lidcGYxKe5rDJ60TM5/blB5z/04ELVvw6/CK9eLcYeku7HV0jvV7VE6dADYKSdQyUkvd0El+A== - -"@nomicfoundation/edr@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.4.0.tgz#4895ecb6ef321136db837458949c37cce4a29459" - integrity sha512-T96DMSogO8TCdbKKctvxfsDljbhFOUKWc9fHJhSeUh71EEho2qR4951LKQF7t7UWEzguVYh/idQr5L/E3QeaMw== - dependencies: - "@nomicfoundation/edr-darwin-arm64" "0.4.0" - "@nomicfoundation/edr-darwin-x64" "0.4.0" - "@nomicfoundation/edr-linux-arm64-gnu" "0.4.0" - "@nomicfoundation/edr-linux-arm64-musl" "0.4.0" - "@nomicfoundation/edr-linux-x64-gnu" "0.4.0" - "@nomicfoundation/edr-linux-x64-musl" "0.4.0" - "@nomicfoundation/edr-win32-x64-msvc" "0.4.0" - -"@nomicfoundation/ethereumjs-common@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz#9901f513af2d4802da87c66d6f255b510bef5acb" - integrity sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg== - dependencies: - "@nomicfoundation/ethereumjs-util" "9.0.4" - -"@nomicfoundation/ethereumjs-rlp@5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz#66c95256fc3c909f6fb18f6a586475fc9762fa30" - integrity sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw== - -"@nomicfoundation/ethereumjs-tx@5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz#b0ceb58c98cc34367d40a30d255d6315b2f456da" - integrity sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw== - dependencies: - "@nomicfoundation/ethereumjs-common" "4.0.4" - "@nomicfoundation/ethereumjs-rlp" "5.0.4" - "@nomicfoundation/ethereumjs-util" "9.0.4" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/ethereumjs-util@9.0.4": - version "9.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz#84c5274e82018b154244c877b76bc049a4ed7b38" - integrity sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q== - dependencies: - "@nomicfoundation/ethereumjs-rlp" "5.0.4" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/hardhat-chai-matchers@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.2.tgz#a0e5dbca43ba9560c096da162c0e3245303479d1" - integrity sha512-9Wu9mRtkj0U9ohgXYFbB/RQDa+PcEdyBm2suyEtsJf3PqzZEEjLUZgWnMjlFhATMk/fp3BjmnYVPrwl+gr8oEw== - dependencies: - "@types/chai-as-promised" "^7.1.3" - chai-as-promised "^7.1.1" - deep-eql "^4.0.1" - ordinal "^1.0.3" - -"@nomicfoundation/hardhat-ethers@^3.0.0": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz#0422c2123dec7c42e7fb2be8e1691f1d9708db56" - integrity sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw== - dependencies: - debug "^4.1.1" - lodash.isequal "^4.5.0" - -"@nomicfoundation/hardhat-network-helpers@^1.0.9": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.9.tgz#767449e8a2acda79306ac84626117583d95d25aa" - integrity sha512-OXWCv0cHpwLUO2u7bFxBna6dQtCC2Gg/aN/KtJLO7gmuuA28vgmVKYFRCDUqrbjujzgfwQ2aKyZ9Y3vSmDqS7Q== - dependencies: - ethereumjs-util "^7.1.4" - -"@nomicfoundation/hardhat-toolbox@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-4.0.0.tgz#eb1f619218dd1414fa161dfec92d3e5e53a2f407" - integrity sha512-jhcWHp0aHaL0aDYj8IJl80v4SZXWMS1A2XxXa1CA6pBiFfJKuZinCkO6wb+POAt0LIfXB3gA3AgdcOccrcwBwA== - -"@nomicfoundation/hardhat-verify@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.1.tgz#1b9d707516f8e5db4e1d6bd679acbfd71e567928" - integrity sha512-TuJrhW5p9x92wDRiRhNkGQ/wzRmOkfCLkoRg8+IRxyeLigOALbayQEmkNiGWR03vGlxZS4znXhKI7y97JwZ6Og== - dependencies: - "@ethersproject/abi" "^5.1.2" - "@ethersproject/address" "^5.0.2" - cbor "^8.1.0" - chalk "^2.4.2" - debug "^4.1.1" - lodash.clonedeep "^4.5.0" - semver "^6.3.0" - table "^6.8.0" - undici "^5.14.0" - -"@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz#4c858096b1c17fe58a474fe81b46815f93645c15" - integrity sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w== - -"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz#6e25ccdf6e2d22389c35553b64fe6f3fdaec432c" - integrity sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA== - -"@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz#0a224ea50317139caeebcdedd435c28a039d169c" - integrity sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA== - -"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz#dfa085d9ffab9efb2e7b383aed3f557f7687ac2b" - integrity sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg== - -"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz#c9e06b5d513dd3ab02a7ac069c160051675889a4" - integrity sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w== - -"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz#8d328d16839e52571f72f2998c81e46bf320f893" - integrity sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA== - -"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz#9b49d0634b5976bb5ed1604a1e1b736f390959bb" - integrity sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w== - -"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz#e2867af7264ebbcc3131ef837878955dd6a3676f" - integrity sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg== - -"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz#0685f78608dd516c8cdfb4896ed451317e559585" - integrity sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ== - -"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz#c9a44f7108646f083b82e851486e0f6aeb785836" - integrity sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw== - -"@nomicfoundation/solidity-analyzer@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz#f5f4d36d3f66752f59a57e7208cd856f3ddf6f2d" - integrity sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg== - optionalDependencies: - "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.1" - "@nomicfoundation/solidity-analyzer-darwin-x64" "0.1.1" - "@nomicfoundation/solidity-analyzer-freebsd-x64" "0.1.1" - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu" "0.1.1" - "@nomicfoundation/solidity-analyzer-linux-arm64-musl" "0.1.1" - "@nomicfoundation/solidity-analyzer-linux-x64-gnu" "0.1.1" - "@nomicfoundation/solidity-analyzer-linux-x64-musl" "0.1.1" - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc" "0.1.1" - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.1" - "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.1" - -"@nomiclabs/hardhat-solhint@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-solhint/-/hardhat-solhint-3.0.1.tgz#20e96c3dcd674b8d87ef90c2314db3b5fe551b9c" - integrity sha512-GqDoStxL1aA9hZul9HRdk+3eEZ/XLBwvIlz3/EJUusUsoadNYEnio9aYOsBeNeZWo+B/Fd3EgMXgbf9wWQLyRA== - dependencies: - solhint "^3.4.0" - -"@openzeppelin/contracts-upgradeable@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.0.1.tgz#ebc163cbed2de6b8b69bff628261d18deb912a81" - integrity sha512-MvaLoPnVcoZr/qqZP+4cl9piuR4gg0iIGgxVSZ/AL1iId3M6IdEHzz9Naw5Lirl4KKBI6ciTVnX07yL4dOMIJg== - -"@openzeppelin/contracts@^4.1.0": - version "4.9.3" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.3.tgz#00d7a8cf35a475b160b3f0293a6403c511099364" - integrity sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg== - -"@openzeppelin/contracts@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-5.0.2.tgz#b1d03075e49290d06570b2fd42154d76c2a5d210" - integrity sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA== - -"@openzeppelin/defender-admin-client@^1.52.0": - version "1.54.1" - resolved "https://registry.yarnpkg.com/@openzeppelin/defender-admin-client/-/defender-admin-client-1.54.1.tgz#b877972992b95a0dc3787f2ade2f044586621357" - integrity sha512-kRpSUdTsnSqntp4FOXIm95t+6VKHc8CUY2Si71VDuxs0q7HSPZkdpRPSntcolwEzWy9L4a8NS/QMwDF5NJ4X1g== - dependencies: - "@openzeppelin/defender-base-client" "1.54.1" - axios "^1.4.0" - ethers "^5.7.2" - lodash "^4.17.19" - node-fetch "^2.6.0" - -"@openzeppelin/defender-base-client@1.54.1", "@openzeppelin/defender-base-client@^1.52.0": - version "1.54.1" - resolved "https://registry.yarnpkg.com/@openzeppelin/defender-base-client/-/defender-base-client-1.54.1.tgz#ed777ae56908d5a920e1f72ac735c63694e65b30" - integrity sha512-DRGz/7KN3ZQwu28YWMOaojrC7jjPkz/uCwkC8/C8B11qwZhA5qIVvyhYHhhFOCl0J84+E3TNdvkPD2q3p2WaJw== - dependencies: - amazon-cognito-identity-js "^6.0.1" - async-retry "^1.3.3" - axios "^1.4.0" - lodash "^4.17.19" - node-fetch "^2.6.0" - -"@openzeppelin/defender-sdk-base-client@^1.10.0", "@openzeppelin/defender-sdk-base-client@^1.12.0": - version "1.12.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-1.12.0.tgz#fbf850c0c3ffadbddb02df70656957e336ed5df8" - integrity sha512-6n5SwJWCjFciC+T7QhfXnkEmkNZGKK0efkCZDAfu/Kd8L1AICnIkWwVte71dnzCBln7wglMiZupSHL3fZqePmQ== - dependencies: - amazon-cognito-identity-js "^6.3.6" - async-retry "^1.3.3" - -"@openzeppelin/defender-sdk-deploy-client@^1.10.0": - version "1.12.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-1.12.0.tgz#48de22f8dd39f7b37be4ba94516464f8bd6e56ab" - integrity sha512-E1RTyh0kXGRJJy7Kq/qSjQlyHJmtytLLKGHIVbI4Ijo9vwRZ7FZhZgK9lapJNshS4E1p3WgXHSOUJtOfn3F1bg== - dependencies: - "@openzeppelin/defender-sdk-base-client" "^1.12.0" - axios "^1.6.7" - lodash "^4.17.21" - -"@openzeppelin/defender-sdk-network-client@^1.10.0": - version "1.12.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-network-client/-/defender-sdk-network-client-1.12.0.tgz#a08111c6d3d345a22707026fe25ac5cdb24f0641" - integrity sha512-0dlEHC27hOVRY+iVcoP2zH8K0jy4O+sOGKz2Ep9eebNcWc7GO6z1wsc4fU51AoiMh+G7cYb+l5z1wQ4Q3Y9vIA== - dependencies: - "@openzeppelin/defender-sdk-base-client" "^1.12.0" - axios "^1.6.7" - lodash "^4.17.21" - -"@openzeppelin/hardhat-upgrades@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-3.1.0.tgz#ff17f2c765412f3eb9042b5a55e356189deee9c0" - integrity sha512-CQ5Cg2kE8WeW6qajUTacBsmkntiAwJd7f6p+BUtd1fEvEv7si4H2lmAqvjOjkFc9ihIEQxMBy50IsBXSZGktmg== - dependencies: - "@openzeppelin/defender-admin-client" "^1.52.0" - "@openzeppelin/defender-base-client" "^1.52.0" - "@openzeppelin/defender-sdk-base-client" "^1.10.0" - "@openzeppelin/defender-sdk-deploy-client" "^1.10.0" - "@openzeppelin/defender-sdk-network-client" "^1.10.0" - "@openzeppelin/upgrades-core" "^1.32.0" - chalk "^4.1.0" - debug "^4.1.1" - ethereumjs-util "^7.1.5" - proper-lockfile "^4.1.1" - undici "^6.11.1" - -"@openzeppelin/upgrades-core@^1.32.0": - version "1.32.2" - resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.32.2.tgz#4313bd0a547090a350817cf798af60e0eb0728e8" - integrity sha512-EkXriOHZfn6u00Tbq0zUuhHDeTQB9WyAZKZo3UeYdqULb7E3vqxZgxgXmWJwEzAb6E77DvprzQ4gwCAjMV/S4Q== - dependencies: - cbor "^9.0.0" - chalk "^4.1.0" - compare-versions "^6.0.0" - debug "^4.1.1" - ethereumjs-util "^7.0.3" - minimist "^1.2.7" - proper-lockfile "^4.1.1" - solidity-ast "^0.4.51" - -"@parcel/watcher-android-arm64@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz#c2c19a3c442313ff007d2d7a9c2c1dd3e1c9ca84" - integrity sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg== - -"@parcel/watcher-darwin-arm64@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz#c817c7a3b4f3a79c1535bfe54a1c2818d9ffdc34" - integrity sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA== - -"@parcel/watcher-darwin-x64@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz#1a3f69d9323eae4f1c61a5f480a59c478d2cb020" - integrity sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg== - -"@parcel/watcher-freebsd-x64@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz#0d67fef1609f90ba6a8a662bc76a55fc93706fc8" - integrity sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w== - -"@parcel/watcher-linux-arm-glibc@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz#ce5b340da5829b8e546bd00f752ae5292e1c702d" - integrity sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA== - -"@parcel/watcher-linux-arm64-glibc@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz#6d7c00dde6d40608f9554e73998db11b2b1ff7c7" - integrity sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA== - -"@parcel/watcher-linux-arm64-musl@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz#bd39bc71015f08a4a31a47cd89c236b9d6a7f635" - integrity sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA== - -"@parcel/watcher-linux-x64-glibc@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz#0ce29966b082fb6cdd3de44f2f74057eef2c9e39" - integrity sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg== - -"@parcel/watcher-linux-x64-musl@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz#d2ebbf60e407170bb647cd6e447f4f2bab19ad16" - integrity sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ== - -"@parcel/watcher-wasm@^2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-wasm/-/watcher-wasm-2.4.1.tgz#c4353e4fdb96ee14389856f7f6f6d21b7dcef9e1" - integrity sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA== - dependencies: - is-glob "^4.0.3" - micromatch "^4.0.5" - napi-wasm "^1.1.0" - -"@parcel/watcher-win32-arm64@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz#eb4deef37e80f0b5e2f215dd6d7a6d40a85f8adc" - integrity sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg== - -"@parcel/watcher-win32-ia32@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz#94fbd4b497be39fd5c8c71ba05436927842c9df7" - integrity sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw== - -"@parcel/watcher-win32-x64@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz#4bf920912f67cae5f2d264f58df81abfea68dadf" - integrity sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A== - -"@parcel/watcher@^2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.4.1.tgz#a50275151a1bb110879c6123589dba90c19f1bf8" - integrity sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA== - dependencies: - detect-libc "^1.0.3" - is-glob "^4.0.3" - micromatch "^4.0.5" - node-addon-api "^7.0.0" - optionalDependencies: - "@parcel/watcher-android-arm64" "2.4.1" - "@parcel/watcher-darwin-arm64" "2.4.1" - "@parcel/watcher-darwin-x64" "2.4.1" - "@parcel/watcher-freebsd-x64" "2.4.1" - "@parcel/watcher-linux-arm-glibc" "2.4.1" - "@parcel/watcher-linux-arm64-glibc" "2.4.1" - "@parcel/watcher-linux-arm64-musl" "2.4.1" - "@parcel/watcher-linux-x64-glibc" "2.4.1" - "@parcel/watcher-linux-x64-musl" "2.4.1" - "@parcel/watcher-win32-arm64" "2.4.1" - "@parcel/watcher-win32-ia32" "2.4.1" - "@parcel/watcher-win32-x64" "2.4.1" - -"@pnpm/config.env-replace@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" - integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== - -"@pnpm/network.ca-file@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" - integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== - dependencies: - graceful-fs "4.2.10" - -"@pnpm/npm-conf@^2.1.0": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" - integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== - dependencies: - "@pnpm/config.env-replace" "^1.1.0" - "@pnpm/network.ca-file" "^1.0.1" - config-chain "^1.1.11" - -"@prettier/sync@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@prettier/sync/-/sync-0.3.0.tgz#91f2cfc23490a21586d1cf89c6f72157c000ca1e" - integrity sha512-3dcmCyAxIcxy036h1I7MQU/uEEBq8oLwf1CE3xeze+MPlgkdlb/+w6rGR/1dhp6Hqi17fRS6nvwnOzkESxEkOw== - -"@safe-global/api-kit@^2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@safe-global/api-kit/-/api-kit-2.4.1.tgz#5f8b9825e6654dea2e96902a6047c25841d515a4" - integrity sha512-VLCJwBzspIGJSMwnj/1e9RAaIb0cXfp4qEVOsYqXFhMkpc5P8bZ4jGIbTRaEykELNIGJXpegdZkqlYyzABaERw== - dependencies: - "@safe-global/protocol-kit" "^4.0.1" - "@safe-global/safe-core-sdk-types" "^5.0.1" - ethers "^6.12.1" - node-fetch "^2.7.0" - -"@safe-global/protocol-kit@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@safe-global/protocol-kit/-/protocol-kit-4.0.1.tgz#88622f7909d93817ef8490e98a940e1c44c94934" - integrity sha512-dD3dJF33VbCeqH8B4RTSP2aupxO6rQbmtTr3mzKdsD05JHUoMHVty37fihQLCyxn23UUxTyuptFPBnczEsvPJw== - dependencies: - "@noble/hashes" "^1.3.3" - "@safe-global/safe-core-sdk-types" "^5.0.1" - "@safe-global/safe-deployments" "^1.36.0" - abitype "^1.0.2" - ethereumjs-util "^7.1.5" - ethers "^6.12.1" - semver "^7.6.1" - -"@safe-global/safe-core-sdk-types@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@safe-global/safe-core-sdk-types/-/safe-core-sdk-types-5.0.1.tgz#0ccfb83b37e18b2683901f6879d0d25fcf676346" - integrity sha512-xIlHZ9kaAIwEhR0OY0i2scdcQyrc0tDJ+eZZ04lhvg81cgYLY1Z5wfJQqazR2plPT1Hz0A9C79jYdUVvzoF/tw== - dependencies: - abitype "^1.0.2" - -"@safe-global/safe-deployments@^1.36.0": - version "1.37.0" - resolved "https://registry.yarnpkg.com/@safe-global/safe-deployments/-/safe-deployments-1.37.0.tgz#3fc33fe03abcf404e261f3d5988791dd0a979558" - integrity sha512-OInLNWC9EPem/eOsvPdlq4Gt/08Nfhslm9z6T92Jvjmcu6hs85vjfnDP1NrzwcOmsCarATU5NH2bTITd9VNCPw== - dependencies: - semver "^7.6.0" - -"@scure/base@~1.1.0": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" - integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== - -"@scure/bip32@1.1.5": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.5.tgz#d2ccae16dcc2e75bc1d75f5ef3c66a338d1ba300" - integrity sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw== - dependencies: - "@noble/hashes" "~1.2.0" - "@noble/secp256k1" "~1.7.0" - "@scure/base" "~1.1.0" - -"@scure/bip32@1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.1.tgz#7248aea723667f98160f593d621c47e208ccbb10" - integrity sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A== - dependencies: - "@noble/curves" "~1.1.0" - "@noble/hashes" "~1.3.1" - "@scure/base" "~1.1.0" - -"@scure/bip39@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.1.tgz#b54557b2e86214319405db819c4b6a370cf340c5" - integrity sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg== - dependencies: - "@noble/hashes" "~1.2.0" - "@scure/base" "~1.1.0" - -"@scure/bip39@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" - integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== - dependencies: - "@noble/hashes" "~1.3.0" - "@scure/base" "~1.1.0" - -"@sentry/core@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" - integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== - dependencies: - "@sentry/hub" "5.30.0" - "@sentry/minimal" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/hub@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" - integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== - dependencies: - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/minimal@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b" - integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== - dependencies: - "@sentry/hub" "5.30.0" - "@sentry/types" "5.30.0" - tslib "^1.9.3" - -"@sentry/node@^5.18.1": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48" - integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg== - dependencies: - "@sentry/core" "5.30.0" - "@sentry/hub" "5.30.0" - "@sentry/tracing" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - cookie "^0.4.1" - https-proxy-agent "^5.0.0" - lru_map "^0.3.3" - tslib "^1.9.3" - -"@sentry/tracing@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f" - integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw== - dependencies: - "@sentry/hub" "5.30.0" - "@sentry/minimal" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/types@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402" - integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== - -"@sentry/utils@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" - integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== - dependencies: - "@sentry/types" "5.30.0" - tslib "^1.9.3" - -"@sindresorhus/is@^5.2.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" - integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== - -"@smithy/types@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.7.0.tgz#6ed9ba5bff7c4d28c980cff967e6d8456840a4f3" - integrity sha512-1OIFyhK+vOkMbu4aN2HZz/MomREkrAC/HqY5mlJMUJfGrPRwijJDTeiN8Rnj9zUaB8ogXAfIOtZrrgqZ4w7Wnw== - dependencies: - tslib "^2.5.0" - -"@solidity-parser/parser@^0.14.0": - version "0.14.5" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804" - integrity sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg== - dependencies: - antlr4ts "^0.5.0-alpha.4" - -"@solidity-parser/parser@^0.16.0", "@solidity-parser/parser@^0.16.2": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.16.2.tgz#42cb1e3d88b3e8029b0c9befff00b634cd92d2fa" - integrity sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg== - dependencies: - antlr4ts "^0.5.0-alpha.4" - -"@stablelib/aead@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" - integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== - -"@stablelib/binary@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" - integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== - dependencies: - "@stablelib/int" "^1.0.1" - -"@stablelib/bytes@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8" - integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== - -"@stablelib/chacha20poly1305@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz#de6b18e283a9cb9b7530d8767f99cde1fec4c2ee" - integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA== - dependencies: - "@stablelib/aead" "^1.0.1" - "@stablelib/binary" "^1.0.1" - "@stablelib/chacha" "^1.0.1" - "@stablelib/constant-time" "^1.0.1" - "@stablelib/poly1305" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/chacha@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/chacha/-/chacha-1.0.1.tgz#deccfac95083e30600c3f92803a3a1a4fa761371" - integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/constant-time@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" - integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== - -"@stablelib/ed25519@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.3.tgz#f8fdeb6f77114897c887bb6a3138d659d3f35996" - integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg== - dependencies: - "@stablelib/random" "^1.0.2" - "@stablelib/sha512" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/hash@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" - integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== - -"@stablelib/hkdf@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hkdf/-/hkdf-1.0.1.tgz#b4efd47fd56fb43c6a13e8775a54b354f028d98d" - integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== - dependencies: - "@stablelib/hash" "^1.0.1" - "@stablelib/hmac" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/hmac@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hmac/-/hmac-1.0.1.tgz#3d4c1b8cf194cb05d28155f0eed8a299620a07ec" - integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== - dependencies: - "@stablelib/constant-time" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/int@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" - integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== - -"@stablelib/keyagreement@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz#4612efb0a30989deb437cd352cee637ca41fc50f" - integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== - dependencies: - "@stablelib/bytes" "^1.0.1" - -"@stablelib/poly1305@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc" - integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== - dependencies: - "@stablelib/constant-time" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/random@1.0.2", "@stablelib/random@^1.0.1", "@stablelib/random@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" - integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/sha256@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f" - integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/sha512@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" - integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/wipe@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" - integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== - -"@stablelib/x25519@1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd" - integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw== - dependencies: - "@stablelib/keyagreement" "^1.0.1" - "@stablelib/random" "^1.0.2" - "@stablelib/wipe" "^1.0.1" - -"@szmarczak/http-timer@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@typechain/ethers-v6@^0.5.0": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz#42fe214a19a8b687086c93189b301e2b878797ea" - integrity sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA== - dependencies: - lodash "^4.17.15" - ts-essentials "^7.0.1" - -"@typechain/hardhat@^9.0.0": - version "9.1.0" - resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-9.1.0.tgz#6985015f01dfb37ef2ca8a29c742d05890351ddc" - integrity sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA== - dependencies: - fs-extra "^9.1.0" - -"@types/bn.js@^4.11.3": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - -"@types/bn.js@^5.1.0": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" - integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== - dependencies: - "@types/node" "*" - -"@types/chai-as-promised@^7.1.3": - version "7.1.8" - resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz#f2b3d82d53c59626b5d6bbc087667ccb4b677fe9" - integrity sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw== - dependencies: - "@types/chai" "*" - -"@types/chai@*", "@types/chai@^4.2.0": - version "4.3.11" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.11.tgz#e95050bf79a932cb7305dd130254ccdf9bde671c" - integrity sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ== - -"@types/concat-stream@^1.6.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" - integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== - dependencies: - "@types/node" "*" - -"@types/form-data@0.0.33": - version "0.0.33" - resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-0.0.33.tgz#c9ac85b2a5fd18435b8c85d9ecb50e6d6c893ff8" - integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== - dependencies: - "@types/node" "*" - -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/http-cache-semantics@^4.0.2": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" - integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== - -"@types/lru-cache@^5.1.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" - integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== - -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - -"@types/mocha@>=9.1.0": - version "10.0.6" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b" - integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== - -"@types/node@*", "@types/node@>=16.0.0": - version "20.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.1.tgz#d2c96f356c3125fedc983d74c424910c3767141c" - integrity sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg== - dependencies: - undici-types "~5.26.4" - -"@types/node@18.15.13": - version "18.15.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" - integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== - -"@types/node@^10.0.3": - version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== - -"@types/node@^8.0.0": - version "8.10.66" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" - integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== - -"@types/pbkdf2@^3.0.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.2.tgz#2dc43808e9985a2c69ff02e2d2027bd4fe33e8dc" - integrity sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew== - dependencies: - "@types/node" "*" - -"@types/prettier@^2.1.1": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" - integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== - -"@types/qs@^6.2.31": - version "6.9.10" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" - integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== - -"@types/secp256k1@^4.0.1": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf" - integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ== - dependencies: - "@types/node" "*" - -"@types/trusted-types@^2.0.2": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" - integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== - -"@walletconnect/core@2.13.1": - version "2.13.1" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.13.1.tgz#a59646e39a5beaa3f3551d129af43cd404cf4faf" - integrity sha512-h0MSYKJu9i1VEs5koCTT7c5YeQ1Kj0ncTFiMqANbDnB1r3mBulXn+FKtZ2fCmf1j7KDpgluuUzpSs+sQfPcv4Q== - dependencies: - "@walletconnect/heartbeat" "1.2.2" - "@walletconnect/jsonrpc-provider" "1.0.14" - "@walletconnect/jsonrpc-types" "1.0.4" - "@walletconnect/jsonrpc-utils" "1.0.8" - "@walletconnect/jsonrpc-ws-connection" "1.0.14" - "@walletconnect/keyvaluestorage" "1.1.1" - "@walletconnect/logger" "2.1.2" - "@walletconnect/relay-api" "1.0.10" - "@walletconnect/relay-auth" "1.0.4" - "@walletconnect/safe-json" "1.0.2" - "@walletconnect/time" "1.0.2" - "@walletconnect/types" "2.13.1" - "@walletconnect/utils" "2.13.1" - events "3.3.0" - isomorphic-unfetch "3.1.0" - lodash.isequal "4.5.0" - uint8arrays "3.1.0" - -"@walletconnect/environment@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.1.tgz#1d7f82f0009ab821a2ba5ad5e5a7b8ae3b214cd7" - integrity sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg== - dependencies: - tslib "1.14.1" - -"@walletconnect/ethereum-provider@^2.13.1": - version "2.13.1" - resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.13.1.tgz#a9bdb8f9da303088b7b724fa98f4b5ca0d46a36d" - integrity sha512-bHJVqb++GrrMGlapsbSvvIyBlwulMGZEx6N5xwAl6ImPVzbDN0g0XmibNkjzJXVsi/+/d0R/HmKS1WyJQSNx3w== - dependencies: - "@walletconnect/jsonrpc-http-connection" "1.0.8" - "@walletconnect/jsonrpc-provider" "1.0.14" - "@walletconnect/jsonrpc-types" "1.0.4" - "@walletconnect/jsonrpc-utils" "1.0.8" - "@walletconnect/modal" "2.6.2" - "@walletconnect/sign-client" "2.13.1" - "@walletconnect/types" "2.13.1" - "@walletconnect/universal-provider" "2.13.1" - "@walletconnect/utils" "2.13.1" - events "3.3.0" - -"@walletconnect/events@1.0.1", "@walletconnect/events@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/events/-/events-1.0.1.tgz#2b5f9c7202019e229d7ccae1369a9e86bda7816c" - integrity sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ== - dependencies: - keyvaluestorage-interface "^1.0.0" - tslib "1.14.1" - -"@walletconnect/heartbeat@1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz#e8dc5179db7769950c6f9cf59b23516d9b95227d" - integrity sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw== - dependencies: - "@walletconnect/events" "^1.0.1" - "@walletconnect/time" "^1.0.2" - events "^3.3.0" - -"@walletconnect/jsonrpc-http-connection@1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.8.tgz#2f4c3948f074960a3edd07909560f3be13e2c7ae" - integrity sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw== - dependencies: - "@walletconnect/jsonrpc-utils" "^1.0.6" - "@walletconnect/safe-json" "^1.0.1" - cross-fetch "^3.1.4" - events "^3.3.0" - -"@walletconnect/jsonrpc-provider@1.0.14": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz#696f3e3b6d728b361f2e8b853cfc6afbdf2e4e3e" - integrity sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow== - dependencies: - "@walletconnect/jsonrpc-utils" "^1.0.8" - "@walletconnect/safe-json" "^1.0.2" - events "^3.3.0" - -"@walletconnect/jsonrpc-types@1.0.4", "@walletconnect/jsonrpc-types@^1.0.2", "@walletconnect/jsonrpc-types@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz#ce1a667d79eadf2a2d9d002c152ceb68739c230c" - integrity sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ== - dependencies: - events "^3.3.0" - keyvaluestorage-interface "^1.0.0" - -"@walletconnect/jsonrpc-utils@1.0.8", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz#82d0cc6a5d6ff0ecc277cb35f71402c91ad48d72" - integrity sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw== - dependencies: - "@walletconnect/environment" "^1.0.1" - "@walletconnect/jsonrpc-types" "^1.0.3" - tslib "1.14.1" - -"@walletconnect/jsonrpc-ws-connection@1.0.14": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz#eec700e74766c7887de2bd76c91a0206628732aa" - integrity sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA== - dependencies: - "@walletconnect/jsonrpc-utils" "^1.0.6" - "@walletconnect/safe-json" "^1.0.2" - events "^3.3.0" - ws "^7.5.1" - -"@walletconnect/keyvaluestorage@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz#dd2caddabfbaf80f6b8993a0704d8b83115a1842" - integrity sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA== - dependencies: - "@walletconnect/safe-json" "^1.0.1" - idb-keyval "^6.2.1" - unstorage "^1.9.0" - -"@walletconnect/logger@2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@walletconnect/logger/-/logger-2.1.2.tgz#813c9af61b96323a99f16c10089bfeb525e2a272" - integrity sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw== - dependencies: - "@walletconnect/safe-json" "^1.0.2" - pino "7.11.0" - -"@walletconnect/modal-core@2.6.2": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.6.2.tgz#d73e45d96668764e0c8668ea07a45bb8b81119e9" - integrity sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA== - dependencies: - valtio "1.11.2" - -"@walletconnect/modal-ui@2.6.2": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.6.2.tgz#fa57c087c57b7f76aaae93deab0f84bb68b59cf9" - integrity sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA== - dependencies: - "@walletconnect/modal-core" "2.6.2" - lit "2.8.0" - motion "10.16.2" - qrcode "1.5.3" - -"@walletconnect/modal@2.6.2": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.2.tgz#4b534a836f5039eeb3268b80be7217a94dd12651" - integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA== - dependencies: - "@walletconnect/modal-core" "2.6.2" - "@walletconnect/modal-ui" "2.6.2" - -"@walletconnect/relay-api@1.0.10": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.10.tgz#5aef3cd07c21582b968136179aa75849dcc65499" - integrity sha512-tqrdd4zU9VBNqUaXXQASaexklv6A54yEyQQEXYOCr+Jz8Ket0dmPBDyg19LVSNUN2cipAghQc45/KVmfFJ0cYw== - dependencies: - "@walletconnect/jsonrpc-types" "^1.0.2" - -"@walletconnect/relay-auth@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz#0b5c55c9aa3b0ef61f526ce679f3ff8a5c4c2c7c" - integrity sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ== - dependencies: - "@stablelib/ed25519" "^1.0.2" - "@stablelib/random" "^1.0.1" - "@walletconnect/safe-json" "^1.0.1" - "@walletconnect/time" "^1.0.2" - tslib "1.14.1" - uint8arrays "^3.0.0" - -"@walletconnect/safe-json@1.0.2", "@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.2.tgz#7237e5ca48046e4476154e503c6d3c914126fa77" - integrity sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA== - dependencies: - tslib "1.14.1" - -"@walletconnect/sign-client@2.13.1": - version "2.13.1" - resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.13.1.tgz#7bdc9226218fd33caf3aef69dff0b4140abc7fa8" - integrity sha512-e+dcqcLsedB4ZjnePFM5Cy8oxu0dyz5iZfhfKH/MOrQV/hyhZ+hJwh4MmkO2QyEu2PERKs9o2Uc6x8RZdi0UAQ== - dependencies: - "@walletconnect/core" "2.13.1" - "@walletconnect/events" "1.0.1" - "@walletconnect/heartbeat" "1.2.2" - "@walletconnect/jsonrpc-utils" "1.0.8" - "@walletconnect/logger" "2.1.2" - "@walletconnect/time" "1.0.2" - "@walletconnect/types" "2.13.1" - "@walletconnect/utils" "2.13.1" - events "3.3.0" - -"@walletconnect/time@1.0.2", "@walletconnect/time@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/time/-/time-1.0.2.tgz#6c5888b835750ecb4299d28eecc5e72c6d336523" - integrity sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g== - dependencies: - tslib "1.14.1" - -"@walletconnect/types@2.13.1": - version "2.13.1" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.13.1.tgz#393e3bd4d60a755f3a70cbe769b58cf153450310" - integrity sha512-CIrdt66d38xdunGCy5peOOP17EQkCEGKweXc3+Gn/RWeSiRU35I7wjC/Bp4iWcgAQ6iBTZv4jGGST5XyrOp+Pg== - dependencies: - "@walletconnect/events" "1.0.1" - "@walletconnect/heartbeat" "1.2.2" - "@walletconnect/jsonrpc-types" "1.0.4" - "@walletconnect/keyvaluestorage" "1.1.1" - "@walletconnect/logger" "2.1.2" - events "3.3.0" - -"@walletconnect/universal-provider@2.13.1": - version "2.13.1" - resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.13.1.tgz#e007c4963ca73fea7c29dc3ca4ca57e2607daafc" - integrity sha512-A/6WysrvzXWtYD933PKjJlj7PGtOWdkwKeRDiD6JEVk5fQ+DQ1x0p5qcUhaa57r3S0p559YvRNvHFFjx+PpMqA== - dependencies: - "@walletconnect/jsonrpc-http-connection" "1.0.8" - "@walletconnect/jsonrpc-provider" "1.0.14" - "@walletconnect/jsonrpc-types" "1.0.4" - "@walletconnect/jsonrpc-utils" "1.0.8" - "@walletconnect/logger" "2.1.2" - "@walletconnect/sign-client" "2.13.1" - "@walletconnect/types" "2.13.1" - "@walletconnect/utils" "2.13.1" - events "3.3.0" - -"@walletconnect/utils@2.13.1": - version "2.13.1" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.13.1.tgz#f44e81028754c6e056dba588ad9b9fa5ad047645" - integrity sha512-EcooXXlqy5hk9hy/nK2wBF/qxe7HjH0K8ZHzjKkXRkwAE5pCvy0IGXIXWmUR9sw8LFJEqZyd8rZdWLKNUe8hqA== - dependencies: - "@stablelib/chacha20poly1305" "1.0.1" - "@stablelib/hkdf" "1.0.1" - "@stablelib/random" "1.0.2" - "@stablelib/sha256" "1.0.1" - "@stablelib/x25519" "1.0.3" - "@walletconnect/relay-api" "1.0.10" - "@walletconnect/safe-json" "1.0.2" - "@walletconnect/time" "1.0.2" - "@walletconnect/types" "2.13.1" - "@walletconnect/window-getters" "1.0.1" - "@walletconnect/window-metadata" "1.0.1" - detect-browser "5.3.0" - query-string "7.1.3" - uint8arrays "3.1.0" - -"@walletconnect/window-getters@1.0.1", "@walletconnect/window-getters@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc" - integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== - dependencies: - tslib "1.14.1" - -"@walletconnect/window-metadata@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz#2124f75447b7e989e4e4e1581d55d25bc75f7be5" - integrity sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA== - dependencies: - "@walletconnect/window-getters" "^1.0.1" - tslib "1.14.1" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abbrev@1.0.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== - -abitype@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.2.tgz#183c28f2f3b4278810ed1543941b555bb73f301d" - integrity sha512-aFt4k2H+eiAKy/zxtnORa9iIb10BMBeWL18l8v4+QuwYEBXPxxjSB1bFZCzQmKPoj8m7j68K705l3uY+E2gAjg== - -acorn-walk@^8.1.1: - version "8.3.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" - integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== - -acorn@^8.11.3: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - -acorn@^8.4.1: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== - -address@^1.0.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" - integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== - -adm-zip@^0.4.16: - version "0.4.16" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" - integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== - -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== - -aes-js@4.0.0-beta.5: - version "4.0.0-beta.5" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" - integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.12.6: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.1: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -amazon-cognito-identity-js@^6.0.1, amazon-cognito-identity-js@^6.3.6: - version "6.3.7" - resolved "https://registry.yarnpkg.com/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.7.tgz#65c3d7ee4e0c0a1ffea01927248989c5bd1d1868" - integrity sha512-tSjnM7KyAeOZ7UMah+oOZ6cW4Gf64FFcc7BE2l7MTcp7ekAPrXaCbpcW2xEpH1EiDS4cPcAouHzmCuc2tr72vQ== - dependencies: - "@aws-crypto/sha256-js" "1.2.2" - buffer "4.9.2" - fast-base64-decode "^1.0.0" - isomorphic-unfetch "^3.0.0" - js-cookie "^2.2.1" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== - -ansi-align@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== - dependencies: - string-width "^4.1.0" - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -antlr4@^4.11.0: - version "4.13.1" - resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.13.1.tgz#1e0a1830a08faeb86217cb2e6c34716004e4253d" - integrity sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA== - -antlr4ts@^0.5.0-alpha.4: - version "0.5.0-alpha.4" - resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" - integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== - -anymatch@^3.1.3, anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-back@^3.0.1, array-back@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" - integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== - -array-back@^4.0.1, array-back@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" - integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-uniq@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== - -array.prototype.findlast@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.3.tgz#4e4b375de5adf4897fed155e2d2771564865cc3b" - integrity sha512-kcBubumjciBg4JKp5KTKtI7ec7tRefPk88yjkWJwaVKYd9QfTaxcsOxoMNKd7iBr447zCfDV0z1kOF47umv42g== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" - -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" - is-shared-array-buffer "^1.0.2" - -asap@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -ast-parents@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/ast-parents/-/ast-parents-0.0.1.tgz#508fd0f05d0c48775d9eccda2e174423261e8dd3" - integrity sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-retry@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" - integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== - dependencies: - retry "0.13.1" - -async@1.x: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atomic-sleep@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" - integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -axios@^1.4.0: - version "1.6.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.3.tgz#7f50f23b3aa246eff43c54834272346c396613f4" - integrity sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -axios@^1.5.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -axios@^1.6.7: - version "1.6.8" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66" - integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ== - dependencies: - follow-redirects "^1.15.6" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bech32@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" - integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -blakejs@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" - integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== - -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== - -bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -boxen@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" - integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^6.2.0" - chalk "^4.1.0" - cli-boxes "^2.2.1" - string-width "^4.2.2" - type-fest "^0.20.2" - widest-line "^3.1.0" - wrap-ansi "^7.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -braces@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -browserify-aes@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -bs58@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" - integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== - -buffer@4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacheable-lookup@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" - integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== - -cacheable-request@^10.2.8: - version "10.2.14" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" - integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== - dependencies: - "@types/http-cache-semantics" "^4.0.2" - get-stream "^6.0.1" - http-cache-semantics "^4.1.1" - keyv "^4.5.3" - mimic-response "^4.0.0" - normalize-url "^8.0.0" - responselike "^3.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== - dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0, camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caseless@^0.12.0, caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -cbor@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" - integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== - dependencies: - nofilter "^3.1.0" - -cbor@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-9.0.1.tgz#b16e393d4948d44758cd54ac6151379d443b37ae" - integrity sha512-/TQOWyamDxvVIv+DY9cOLNuABkoyz8K/F3QE56539pGVYohx0+MEA1f4lChFTX79dBTBS7R1PF6ovH7G+VtBfQ== - dependencies: - nofilter "^3.1.0" - -chai-as-promised@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" - integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== - dependencies: - check-error "^1.0.2" - -chai@^4.2.0: - version "4.3.10" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.10.tgz#d784cec635e3b7e2ffb66446a63b4e33bd390384" - integrity sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.3" - deep-eql "^4.1.3" - get-func-name "^2.0.2" - loupe "^2.3.6" - pathval "^1.1.1" - type-detect "^4.0.8" - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.1.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -"charenc@>= 0.0.1": - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== - -check-error@^1.0.2, check-error@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" - integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== - dependencies: - get-func-name "^2.0.2" - -chokidar@3.5.3, chokidar@^3.4.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chokidar@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -citty@^0.1.5, citty@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.6.tgz#0f7904da1ed4625e1a9ea7e0fa780981aab7c5e4" - integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== - dependencies: - consola "^3.2.3" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-boxes@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - -cli-table3@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" - integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== - dependencies: - object-assign "^4.1.0" - string-width "^2.1.1" - optionalDependencies: - colors "^1.1.2" - -clipboardy@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-4.0.0.tgz#e73ced93a76d19dd379ebf1f297565426dffdca1" - integrity sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w== - dependencies: - execa "^8.0.1" - is-wsl "^3.1.0" - is64bit "^2.0.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colors@1.4.0, colors@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -command-exists@^1.2.8: - version "1.2.9" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" - integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== - -command-line-args@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" - integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== - dependencies: - array-back "^3.1.0" - find-replace "^3.0.0" - lodash.camelcase "^4.3.0" - typical "^4.0.0" - -command-line-usage@^6.1.0: - version "6.1.3" - resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" - integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== - dependencies: - array-back "^4.0.2" - chalk "^2.4.2" - table-layout "^1.0.2" - typical "^5.2.0" - -commander@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - -commander@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - -compare-versions@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-6.1.0.tgz#3f2131e3ae93577df111dba133e6db876ffe127a" - integrity sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-stream@^1.6.0, concat-stream@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -confbox@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.7.tgz#ccfc0a2bcae36a84838e83a3b7f770fb17d6c579" - integrity sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA== - -config-chain@^1.1.11: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -consola@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" - integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== - -cookie-es@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cookie-es/-/cookie-es-1.1.0.tgz#68f8d9f48aeb5a534f3896f80e792760d3d20def" - integrity sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw== - -cookie@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@^8.0.0: - version "8.3.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" - integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== - dependencies: - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - path-type "^4.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.4: - version "3.1.8" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" - integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== - dependencies: - node-fetch "^2.6.12" - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crossws@^0.2.0, crossws@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/crossws/-/crossws-0.2.4.tgz#82a8b518bff1018ab1d21ced9e35ffbe1681ad03" - integrity sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg== - -"crypt@>= 0.0.1": - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== - -death@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" - integrity sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w== - -debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.1: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -decode-uri-component@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -deep-eql@^4.0.1, deep-eql@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" - integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== - dependencies: - type-detect "^4.0.0" - -deep-extend@^0.6.0, deep-extend@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -defer-to-connect@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== - dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -defu@^6.1.3, defu@^6.1.4: - version "6.1.4" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" - integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destr@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.3.tgz#7f9e97cb3d16dbdca7be52aca1644ce402cfe449" - integrity sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ== - -detect-browser@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" - integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - -detect-port@^1.3.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" - integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== - dependencies: - address "^1.0.1" - debug "4" - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -difflib@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e" - integrity sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w== - dependencies: - heap ">= 0.2.0" - -dijkstrajs@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23" - integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dns-packet@^5.3.0: - version "5.6.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" - integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" - -dotenv@^16.3.1: - version "16.3.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" - integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== - -duplexify@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f" - integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.2" - -elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encode-utf8@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" - integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== - -end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enquirer@^2.3.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" - integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== - dependencies: - ansi-colors "^4.1.1" - strip-ansi "^6.0.1" - -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.22.1: - version "1.22.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.12" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" - -es-set-tostringtag@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" - integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== - dependencies: - get-intrinsic "^1.2.2" - has-tostringtag "^1.0.0" - hasown "^2.0.0" - -es-shim-unscopables@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== - dependencies: - hasown "^2.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escodegen@1.8.x: - version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" - integrity sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A== - dependencies: - esprima "^2.7.1" - estraverse "^1.9.1" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.2.0" - -esprima@2.7.x, esprima@^2.7.1: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -estraverse@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - integrity sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eth-gas-reporter@^0.2.25: - version "0.2.27" - resolved "https://registry.yarnpkg.com/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz#928de8548a674ed64c7ba0bf5795e63079150d4e" - integrity sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw== - dependencies: - "@solidity-parser/parser" "^0.14.0" - axios "^1.5.1" - cli-table3 "^0.5.0" - colors "1.4.0" - ethereum-cryptography "^1.0.3" - ethers "^5.7.2" - fs-readdir-recursive "^1.1.0" - lodash "^4.17.14" - markdown-table "^1.1.3" - mocha "^10.2.0" - req-cwd "^2.0.0" - sha1 "^1.1.1" - sync-request "^6.0.0" - -ethereum-bloom-filters@^1.0.6: - version "1.0.10" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" - integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== - dependencies: - js-sha3 "^0.8.0" - -ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" - integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== - dependencies: - "@types/pbkdf2" "^3.0.0" - "@types/secp256k1" "^4.0.1" - blakejs "^1.1.0" - browserify-aes "^1.2.0" - bs58check "^2.1.2" - create-hash "^1.2.0" - create-hmac "^1.1.7" - hash.js "^1.1.7" - keccak "^3.0.0" - pbkdf2 "^3.0.17" - randombytes "^2.1.0" - safe-buffer "^5.1.2" - scrypt-js "^3.0.0" - secp256k1 "^4.0.1" - setimmediate "^1.0.5" - -ethereum-cryptography@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz#5ccfa183e85fdaf9f9b299a79430c044268c9b3a" - integrity sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw== - dependencies: - "@noble/hashes" "1.2.0" - "@noble/secp256k1" "1.7.1" - "@scure/bip32" "1.1.5" - "@scure/bip39" "1.1.1" - -ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz#18fa7108622e56481157a5cb7c01c0c6a672eb67" - integrity sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug== - dependencies: - "@noble/curves" "1.1.0" - "@noble/hashes" "1.3.1" - "@scure/bip32" "1.3.1" - "@scure/bip39" "1.2.1" - -ethereumjs-abi@^0.6.8: - version "0.6.8" - resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" - integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" - integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" - -ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: - version "7.1.5" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" - integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== - dependencies: - "@types/bn.js" "^5.1.0" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - rlp "^2.2.4" - -ethers@^5.7.2: - version "5.7.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== - dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" - -ethers@^6.12.1: - version "6.13.0" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.0.tgz#f342958d0f622cf06559f59fbccdc1d30fa64f50" - integrity sha512-+yyQQQWEntY5UVbCv++guA14RRVFm1rSnO1GoLFdrK7/XRWMoktNgyG9UjwxrQqGBfGyFKknNZ81YpUS2emCgg== - dependencies: - "@adraffy/ens-normalize" "1.10.1" - "@noble/curves" "1.2.0" - "@noble/hashes" "1.3.2" - "@types/node" "18.15.13" - aes-js "4.0.0-beta.5" - tslib "2.4.0" - ws "8.5.0" - -ethers@^6.8.1: - version "6.11.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.11.1.tgz#96aae00b627c2e35f9b0a4d65c7ab658259ee6af" - integrity sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg== - dependencies: - "@adraffy/ens-normalize" "1.10.1" - "@noble/curves" "1.2.0" - "@noble/hashes" "1.3.2" - "@types/node" "18.15.13" - aes-js "4.0.0-beta.5" - tslib "2.4.0" - ws "8.5.0" - -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - -ethjs-util@0.1.6, ethjs-util@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" - integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== - dependencies: - is-hex-prefixed "1.0.0" - strip-hex-prefix "1.0.0" - -events@3.3.0, events@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" - integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^8.0.1" - human-signals "^5.0.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^4.1.0" - strip-final-newline "^3.0.0" - -fast-base64-decode@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz#b434a0dd7d92b12b43f26819300d2dafb83ee418" - integrity sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q== - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2, fast-diff@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.0.3: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-redact@^3.0.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.5.0.tgz#e9ea02f7e57d0cd8438180083e93077e496285e4" - integrity sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A== - -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - -find-replace@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" - integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== - dependencies: - array-back "^3.0.1" - -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== - dependencies: - locate-path "^2.0.0" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -follow-redirects@^1.12.1, follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== - -follow-redirects@^1.15.6: - version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" - integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -form-data-encoder@^2.1.2: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" - integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== - -form-data@^2.2.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fp-ts@1.19.3: - version "1.19.3" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f" - integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== - -fp-ts@^1.0.0: - version "1.19.5" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" - integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== - -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - -fs-extra@^7.0.0, fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-readdir-recursive@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.1, get-func-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" - integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== - dependencies: - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-port-please@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.2.tgz#502795e56217128e4183025c89a48c71652f4e49" - integrity sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ== - -get-port@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" - integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== - -get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-stream@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" - integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -ghost-testrpc@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz#c4de9557b1d1ae7b2d20bbe474a91378ca90ce92" - integrity sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ== - dependencies: - chalk "^2.4.2" - node-emoji "^1.10.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^5.0.15: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.0, glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^8.0.3: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globby@^10.0.1: - version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -got@^12.1.0: - version "12.6.1" - resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" - integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== - dependencies: - "@sindresorhus/is" "^5.2.0" - "@szmarczak/http-timer" "^5.0.1" - cacheable-lookup "^7.0.0" - cacheable-request "^10.2.8" - decompress-response "^6.0.0" - form-data-encoder "^2.1.2" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "^3.0.0" - p-cancelable "^3.0.0" - responselike "^3.0.0" - -graceful-fs@4.2.10: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -h3@^1.10.2, h3@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/h3/-/h3-1.11.1.tgz#e9414ae6f2a076a345ea07256b320edb29bab9f7" - integrity sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A== - dependencies: - cookie-es "^1.0.0" - crossws "^0.2.2" - defu "^6.1.4" - destr "^2.0.3" - iron-webcrypto "^1.0.0" - ohash "^1.1.3" - radix3 "^1.1.0" - ufo "^1.4.0" - uncrypto "^0.1.3" - unenv "^1.9.0" - -handlebars@^4.0.1: - version "4.7.8" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" - integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.2" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -hardhat-gas-reporter@^1.0.8: - version "1.0.9" - resolved "https://registry.yarnpkg.com/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz#9a2afb354bc3b6346aab55b1c02ca556d0e16450" - integrity sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg== - dependencies: - array-uniq "1.0.3" - eth-gas-reporter "^0.2.25" - sha1 "^1.1.1" - -hardhat@^2.22.5: - version "2.22.5" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.5.tgz#7e1a4311fa9e34a1cfe337784eae06706f6469a5" - integrity sha512-9Zq+HonbXCSy6/a13GY1cgHglQRfh4qkzmj1tpPlhxJDwNVnhxlReV6K7hCWFKlOrV13EQwsdcD0rjcaQKWRZw== - dependencies: - "@ethersproject/abi" "^5.1.2" - "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/edr" "^0.4.0" - "@nomicfoundation/ethereumjs-common" "4.0.4" - "@nomicfoundation/ethereumjs-tx" "5.0.4" - "@nomicfoundation/ethereumjs-util" "9.0.4" - "@nomicfoundation/solidity-analyzer" "^0.1.0" - "@sentry/node" "^5.18.1" - "@types/bn.js" "^5.1.0" - "@types/lru-cache" "^5.1.0" - adm-zip "^0.4.16" - aggregate-error "^3.0.0" - ansi-escapes "^4.3.0" - boxen "^5.1.2" - chalk "^2.4.2" - chokidar "^3.4.0" - ci-info "^2.0.0" - debug "^4.1.1" - enquirer "^2.3.0" - env-paths "^2.2.0" - ethereum-cryptography "^1.0.3" - ethereumjs-abi "^0.6.8" - find-up "^2.1.0" - fp-ts "1.19.3" - fs-extra "^7.0.1" - glob "7.2.0" - immutable "^4.0.0-rc.12" - io-ts "1.10.4" - keccak "^3.0.2" - lodash "^4.17.11" - mnemonist "^0.38.0" - mocha "^10.0.0" - p-map "^4.0.0" - raw-body "^2.4.1" - resolve "1.17.0" - semver "^6.3.0" - solc "0.7.3" - source-map-support "^0.5.13" - stacktrace-parser "^0.1.10" - tsort "0.0.1" - undici "^5.14.0" - uuid "^8.3.2" - ws "^7.4.6" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== - dependencies: - get-intrinsic "^1.2.2" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash-test-vectors@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/hash-test-vectors/-/hash-test-vectors-1.3.2.tgz#f050fde1aff46ec28dcf4f70e4e3238cd5000f4c" - integrity sha512-PKd/fitmsrlWGh3OpKbgNLE04ZQZsvs1ZkuLoQpeIKuwx+6CYVNdW6LaPIS1QAdZvV40+skk0w4YomKnViUnvQ== - -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -"heap@>= 0.2.0": - version "0.2.7" - resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" - integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== - -hey-listen@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" - integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -http-basic@^8.1.1: - version "8.1.3" - resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-8.1.3.tgz#a7cabee7526869b9b710136970805b1004261bbf" - integrity sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw== - dependencies: - caseless "^0.12.0" - concat-stream "^1.6.2" - http-response-object "^3.0.1" - parse-cache-control "^1.0.1" - -http-cache-semantics@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-response-object@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-3.0.2.tgz#7f435bb210454e4360d074ef1f989d5ea8aa9810" - integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== - dependencies: - "@types/node" "^10.0.3" - -http-shutdown@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/http-shutdown/-/http-shutdown-1.2.2.tgz#41bc78fc767637c4c95179bc492f312c0ae64c5f" - integrity sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== - -http2-wrapper@^2.1.10: - version "2.2.1" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" - integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" - integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -idb-keyval@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.1.tgz#94516d625346d16f56f3b33855da11bfded2db33" - integrity sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== - -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^5.1.1, ignore@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== - -immutable@^4.0.0-rc.12: - version "4.3.4" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" - integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== - -import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== - dependencies: - get-intrinsic "^1.2.2" - hasown "^2.0.0" - side-channel "^1.0.4" - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -io-ts@1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" - integrity sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g== - dependencies: - fp-ts "^1.0.0" - -iron-webcrypto@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz#aa60ff2aa10550630f4c0b11fd2442becdb35a6f" - integrity sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg== - -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== - -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== - dependencies: - which-typed-array "^1.1.11" - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-wsl@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" - integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== - dependencies: - is-inside-container "^1.0.0" - -is64bit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is64bit/-/is64bit-2.0.0.tgz#198c627cbcb198bbec402251f88e5e1a51236c07" - integrity sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw== - dependencies: - system-architecture "^0.1.0" - -isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-unfetch@3.1.0, isomorphic-unfetch@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f" - integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== - dependencies: - node-fetch "^2.6.1" - unfetch "^4.2.0" - -jiti@^1.21.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" - integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== - -js-cookie@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" - integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== - -js-sha3@0.8.0, js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@3.x: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonschema@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" - integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== - -keccak@^3.0.0, keccak@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" - integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - readable-stream "^3.6.0" - -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -keyvaluestorage-interface@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff" - integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== - -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== - optionalDependencies: - graceful-fs "^4.1.9" - -latest-version@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" - integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== - dependencies: - package-json "^8.1.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -listhen@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.7.2.tgz#66b81740692269d5d8cafdc475020f2fc51afbae" - integrity sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g== - dependencies: - "@parcel/watcher" "^2.4.1" - "@parcel/watcher-wasm" "^2.4.1" - citty "^0.1.6" - clipboardy "^4.0.0" - consola "^3.2.3" - crossws "^0.2.0" - defu "^6.1.4" - get-port-please "^3.1.2" - h3 "^1.10.2" - http-shutdown "^1.2.2" - jiti "^1.21.0" - mlly "^1.6.1" - node-forge "^1.3.1" - pathe "^1.1.2" - std-env "^3.7.0" - ufo "^1.4.0" - untun "^0.1.3" - uqr "^0.1.2" - -lit-element@^3.3.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.3.tgz#10bc19702b96ef5416cf7a70177255bfb17b3209" - integrity sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA== - dependencies: - "@lit-labs/ssr-dom-shim" "^1.1.0" - "@lit/reactive-element" "^1.3.0" - lit-html "^2.8.0" - -lit-html@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.8.0.tgz#96456a4bb4ee717b9a7d2f94562a16509d39bffa" - integrity sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q== - dependencies: - "@types/trusted-types" "^2.0.2" - -lit@2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/lit/-/lit-2.8.0.tgz#4d838ae03059bf9cafa06e5c61d8acc0081e974e" - integrity sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA== - dependencies: - "@lit/reactive-element" "^1.6.0" - lit-element "^3.3.0" - lit-html "^2.8.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== - -lodash.isequal@4.5.0, lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" - integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== - dependencies: - get-func-name "^2.0.1" - -lowercase-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" - integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== - -lru-cache@^10.2.0: - version "10.2.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" - integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -lru_map@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" - integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -markdown-table@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" - integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.2.3, merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micro-ftch@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" - integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -micromatch@^4.0.5: - version "4.0.7" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" - integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" - integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -mimic-response@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" - integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -"minimatch@2 || 3", minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^5.0.1: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mkdirp@0.5.x: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mlly@^1.6.1, mlly@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.0.tgz#587383ae40dda23cadb11c3c3cc972b277724271" - integrity sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ== - dependencies: - acorn "^8.11.3" - pathe "^1.1.2" - pkg-types "^1.1.0" - ufo "^1.5.3" - -mnemonist@^0.38.0: - version "0.38.5" - resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" - integrity sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg== - dependencies: - obliterator "^2.0.0" - -mocha@10.2.0, mocha@^10.0.0, mocha@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" - integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - nanoid "3.3.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -motion@10.16.2: - version "10.16.2" - resolved "https://registry.yarnpkg.com/motion/-/motion-10.16.2.tgz#7dc173c6ad62210a7e9916caeeaf22c51e598d21" - integrity sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ== - dependencies: - "@motionone/animation" "^10.15.1" - "@motionone/dom" "^10.16.2" - "@motionone/svelte" "^10.16.2" - "@motionone/types" "^10.15.1" - "@motionone/utils" "^10.15.1" - "@motionone/vue" "^10.16.2" - -mri@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multiformats@^9.4.2: - version "9.9.0" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" - integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== - -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - -napi-wasm@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/napi-wasm/-/napi-wasm-1.1.0.tgz#bbe617823765ae9c1bc12ff5942370eae7b2ba4e" - integrity sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -node-addon-api@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" - integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== - -node-addon-api@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.0.tgz#71f609369379c08e251c558527a107107b5e0fdb" - integrity sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g== - -node-emoji@^1.10.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" - integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== - dependencies: - lodash "^4.17.21" - -node-fetch-native@^1.6.1, node-fetch-native@^1.6.2, node-fetch-native@^1.6.3: - version "1.6.4" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.4.tgz#679fc8fd8111266d47d7e72c379f1bed9acff06e" - integrity sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ== - -node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-forge@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -node-gyp-build@^4.2.0: - version "4.7.1" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.1.tgz#cd7d2eb48e594874053150a9418ac85af83ca8f7" - integrity sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg== - -nofilter@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" - integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== - -nopt@3.x: - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== - dependencies: - abbrev "1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" - integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== - -npm-run-path@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" - integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== - dependencies: - path-key "^4.0.0" - -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.13.1, object-inspect@^1.9.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -obliterator@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" - integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== - -ofetch@^1.3.3: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ofetch/-/ofetch-1.3.4.tgz#7ea65ced3c592ec2b9906975ae3fe1d26a56f635" - integrity sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw== - dependencies: - destr "^2.0.3" - node-fetch-native "^1.6.3" - ufo "^1.5.3" - -ohash@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/ohash/-/ohash-1.1.3.tgz#f12c3c50bfe7271ce3fd1097d42568122ccdcf07" - integrity sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw== - -on-exit-leak-free@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" - integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== - -once@1.x, once@^1.3.0, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -ordinal@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ordinal/-/ordinal-1.0.3.tgz#1a3c7726a61728112f50944ad7c35c06ae3a0d4d" - integrity sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ== - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -p-cancelable@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" - integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== - dependencies: - p-limit "^1.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" - integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== - dependencies: - got "^12.1.0" - registry-auth-token "^5.0.1" - registry-url "^6.0.0" - semver "^7.3.7" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-cache-control@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" - integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.6, path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pathe@^1.1.1, pathe@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" - integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -pbkdf2@^3.0.17: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pino-abstract-transport@v0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" - integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== - dependencies: - duplexify "^4.1.2" - split2 "^4.0.0" - -pino-std-serializers@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" - integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== - -pino@7.11.0: - version "7.11.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6" - integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== - dependencies: - atomic-sleep "^1.0.0" - fast-redact "^3.0.0" - on-exit-leak-free "^0.2.0" - pino-abstract-transport v0.5.0 - pino-std-serializers "^4.0.0" - process-warning "^1.0.0" - quick-format-unescaped "^4.0.3" - real-require "^0.1.0" - safe-stable-stringify "^2.1.0" - sonic-boom "^2.2.1" - thread-stream "^0.15.1" - -pkg-types@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.1.1.tgz#07b626880749beb607b0c817af63aac1845a73f2" - integrity sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ== - dependencies: - confbox "^0.1.7" - mlly "^1.7.0" - pathe "^1.1.2" - -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - -pngjs@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" - integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier-plugin-solidity@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.2.0.tgz#dc620b4fc7708a60687a87cdc803e57a1856b6fd" - integrity sha512-fgxcUZpVAP+LlRfy5JI5oaAkXGkmsje2VJ5krv/YMm+rcTZbIUwFguSw5f+WFuttMjpDm6wB4UL7WVkArEfiVA== - dependencies: - "@solidity-parser/parser" "^0.16.2" - semver "^7.5.4" - solidity-comments-extractor "^0.0.7" - -prettier@^2.3.1, prettier@^2.8.3: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -prettier@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" - integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process-warning@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" - integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== - -promise@^8.0.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" - integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== - dependencies: - asap "~2.0.6" - -proper-lockfile@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" - integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== - dependencies: - graceful-fs "^4.2.4" - retry "^0.12.0" - signal-exit "^3.0.2" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== - -proxy-compare@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.5.1.tgz#17818e33d1653fbac8c2ec31406bce8a2966f600" - integrity sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA== - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -punycode@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -qrcode@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170" - integrity sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg== - dependencies: - dijkstrajs "^1.0.1" - encode-utf8 "^1.0.3" - pngjs "^5.0.0" - yargs "^15.3.1" - -qs@^6.4.0: - version "6.11.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" - integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== - dependencies: - side-channel "^1.0.4" - -query-string@7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328" - integrity sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg== - dependencies: - decode-uri-component "^0.2.2" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-format-unescaped@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" - integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -radix3@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.1.2.tgz#fd27d2af3896c6bf4bcdfab6427c69c2afc69ec0" - integrity sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -raw-body@^2.4.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -readable-stream@^2.2.2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -real-require@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" - integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - -recursive-readdir@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" - integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== - dependencies: - minimatch "^3.0.5" - -reduce-flatten@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" - integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== - -regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" - -registry-auth-token@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" - integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== - dependencies: - "@pnpm/npm-conf" "^2.1.0" - -registry-url@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" - integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== - dependencies: - rc "1.2.8" - -req-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/req-cwd/-/req-cwd-2.0.0.tgz#d4082b4d44598036640fb73ddea01ed53db49ebc" - integrity sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ== - dependencies: - req-from "^2.0.0" - -req-from@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/req-from/-/req-from-2.0.0.tgz#d74188e47f93796f4aa71df6ee35ae689f3e0e70" - integrity sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA== - dependencies: - resolve-from "^3.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.0, require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-alpn@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@1.1.x: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== - -resolve@1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -resolve@^1.1.6: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -responselike@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" - integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== - dependencies: - lowercase-keys "^3.0.0" - -retry@0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^2.2.8: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rlp@^2.2.3, rlp@^2.2.4: - version "2.2.7" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" - integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== - dependencies: - bn.js "^5.2.0" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - isarray "^2.0.5" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -safe-stable-stringify@^2.1.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sc-istanbul@^0.4.5: - version "0.4.6" - resolved "https://registry.yarnpkg.com/sc-istanbul/-/sc-istanbul-0.4.6.tgz#cf6784355ff2076f92d70d59047d71c13703e839" - integrity sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g== - dependencies: - abbrev "1.0.x" - async "1.x" - escodegen "1.8.x" - esprima "2.7.x" - glob "^5.0.15" - handlebars "^4.0.1" - js-yaml "3.x" - mkdirp "0.5.x" - nopt "3.x" - once "1.x" - resolve "1.1.x" - supports-color "^3.1.0" - which "^1.1.1" - wordwrap "^1.0.0" - -scrypt-js@3.0.1, scrypt-js@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -secp256k1@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" - integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== - dependencies: - elliptic "^6.5.4" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -semver@^5.5.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^6.3.0: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.3.4, semver@^7.3.7, semver@^7.5.2, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^7.6.0, semver@^7.6.1: - version "7.6.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== - -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== - dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -set-function-name@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== - dependencies: - define-data-property "^1.0.1" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -sha1@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/sha1/-/sha1-1.1.1.tgz#addaa7a93168f393f19eb2b15091618e2700f848" - integrity sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA== - dependencies: - charenc ">= 0.0.1" - crypt ">= 0.0.1" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shelljs@^0.8.3: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signal-exit@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -solc@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" - integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== - dependencies: - command-exists "^1.2.8" - commander "3.0.2" - follow-redirects "^1.12.1" - fs-extra "^0.30.0" - js-sha3 "0.8.0" - memorystream "^0.3.1" - require-from-string "^2.0.0" - semver "^5.5.0" - tmp "0.0.33" - -solhint-plugin-prettier@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/solhint-plugin-prettier/-/solhint-plugin-prettier-0.1.0.tgz#2f46999e26d6c6bc80281c22a7a21e381175bef7" - integrity sha512-SDOTSM6tZxZ6hamrzl3GUgzF77FM6jZplgL2plFBclj/OjKP8Z3eIPojKU73gRr0MvOS8ACZILn8a5g0VTz/Gw== - dependencies: - "@prettier/sync" "^0.3.0" - prettier-linter-helpers "^1.0.0" - -solhint@^3.4.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.6.2.tgz#2b2acbec8fdc37b2c68206a71ba89c7f519943fe" - integrity sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ== - dependencies: - "@solidity-parser/parser" "^0.16.0" - ajv "^6.12.6" - antlr4 "^4.11.0" - ast-parents "^0.0.1" - chalk "^4.1.2" - commander "^10.0.0" - cosmiconfig "^8.0.0" - fast-diff "^1.2.0" - glob "^8.0.3" - ignore "^5.2.4" - js-yaml "^4.1.0" - lodash "^4.17.21" - pluralize "^8.0.0" - semver "^7.5.2" - strip-ansi "^6.0.1" - table "^6.8.1" - text-table "^0.2.0" - optionalDependencies: - prettier "^2.8.3" - -solhint@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/solhint/-/solhint-4.0.0.tgz#fbd27ec9c8348b4fea90b5b469a5c95d625d2e59" - integrity sha512-bFViMcFvhqVd/HK3Roo7xZXX5nbujS7Bxeg5vnZc9QvH0yCWCrQ38Yrn1pbAY9tlKROc6wFr+rK1mxYgYrjZgA== - dependencies: - "@solidity-parser/parser" "^0.16.0" - ajv "^6.12.6" - antlr4 "^4.11.0" - ast-parents "^0.0.1" - chalk "^4.1.2" - commander "^10.0.0" - cosmiconfig "^8.0.0" - fast-diff "^1.2.0" - glob "^8.0.3" - ignore "^5.2.4" - js-yaml "^4.1.0" - latest-version "^7.0.0" - lodash "^4.17.21" - pluralize "^8.0.0" - semver "^7.5.2" - strip-ansi "^6.0.1" - table "^6.8.1" - text-table "^0.2.0" - optionalDependencies: - prettier "^2.8.3" - -solidity-ast@^0.4.51: - version "0.4.55" - resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.55.tgz#00b685e6eefb2e8dfb67df1fe0afbe3b3bfb4b28" - integrity sha512-qeEU/r/K+V5lrAw8iswf2/yfWAnSGs3WKPHI+zAFKFjX0dIBVXEU/swQ8eJQYHf6PJWUZFO2uWV4V1wEOkeQbA== - dependencies: - array.prototype.findlast "^1.2.2" - -solidity-comments-extractor@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" - integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== - -solidity-coverage@^0.8.0: - version "0.8.5" - resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.8.5.tgz#64071c3a0c06a0cecf9a7776c35f49edc961e875" - integrity sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ== - dependencies: - "@ethersproject/abi" "^5.0.9" - "@solidity-parser/parser" "^0.16.0" - chalk "^2.4.2" - death "^1.1.0" - detect-port "^1.3.0" - difflib "^0.2.4" - fs-extra "^8.1.0" - ghost-testrpc "^0.0.2" - global-modules "^2.0.0" - globby "^10.0.1" - jsonschema "^1.2.4" - lodash "^4.17.15" - mocha "10.2.0" - node-emoji "^1.10.0" - pify "^4.0.1" - recursive-readdir "^2.2.2" - sc-istanbul "^0.4.5" - semver "^7.3.4" - shelljs "^0.8.3" - web3-utils "^1.3.6" - -sonic-boom@^2.2.1: - version "2.8.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611" - integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== - dependencies: - atomic-sleep "^1.0.0" - -source-map-support@^0.5.13: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" - integrity sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA== - dependencies: - amdefine ">=0.0.4" - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - -split2@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" - integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -stacktrace-parser@^0.1.10: - version "0.1.10" - resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" - integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== - dependencies: - type-fest "^0.7.1" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -std-env@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" - integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== - -stream-shift@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" - integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== - -string-format@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" - integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== - -string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== - dependencies: - is-hex-prefixed "1.0.0" - -strip-json-comments@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^3.1.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -sync-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-6.1.0.tgz#e96217565b5e50bbffe179868ba75532fb597e68" - integrity sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw== - dependencies: - http-response-object "^3.0.1" - sync-rpc "^1.2.1" - then-request "^6.0.0" - -sync-rpc@^1.2.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/sync-rpc/-/sync-rpc-1.3.6.tgz#b2e8b2550a12ccbc71df8644810529deb68665a7" - integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== - dependencies: - get-port "^3.1.0" - -system-architecture@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/system-architecture/-/system-architecture-0.1.0.tgz#71012b3ac141427d97c67c56bc7921af6bff122d" - integrity sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA== - -table-layout@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" - integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== - dependencies: - array-back "^4.0.1" - deep-extend "~0.6.0" - typical "^5.2.0" - wordwrapjs "^4.0.0" - -table@^6.8.0, table@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" - integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -then-request@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" - integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== - dependencies: - "@types/concat-stream" "^1.6.0" - "@types/form-data" "0.0.33" - "@types/node" "^8.0.0" - "@types/qs" "^6.2.31" - caseless "~0.12.0" - concat-stream "^1.6.0" - form-data "^2.2.0" - http-basic "^8.1.1" - http-response-object "^3.0.1" - promise "^8.0.0" - qs "^6.4.0" - -thread-stream@^0.15.1: - version "0.15.2" - resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.15.2.tgz#fb95ad87d2f1e28f07116eb23d85aba3bc0425f4" - integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== - dependencies: - real-require "^0.1.0" - -tmp@0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-command-line-args@^2.2.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" - integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw== - dependencies: - chalk "^4.1.0" - command-line-args "^5.1.1" - command-line-usage "^6.1.0" - string-format "^2.0.0" - -ts-essentials@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" - integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== - -ts-node@>=8.0.0: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@1.14.1, tslib@^1.11.1, tslib@^1.9.3: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tslib@^2.3.1, tslib@^2.5.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -tsort@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" - integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== - -tweetnacl-util@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" - integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - -type-detect@^4.0.0, type-detect@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" - integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== - -typechain@^8.3.0: - version "8.3.2" - resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.2.tgz#1090dd8d9c57b6ef2aed3640a516bdbf01b00d73" - integrity sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q== - dependencies: - "@types/prettier" "^2.1.1" - debug "^4.3.1" - fs-extra "^7.0.0" - glob "7.1.7" - js-sha3 "^0.8.0" - lodash "^4.17.15" - mkdirp "^1.0.4" - prettier "^2.3.1" - ts-command-line-args "^2.2.0" - ts-essentials "^7.0.1" - -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" - -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - -typescript@>=4.5.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" - integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ== - -typical@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" - integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== - -typical@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" - integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== - -ufo@^1.4.0, ufo@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.3.tgz#3325bd3c977b6c6cd3160bf4ff52989adc9d3344" - integrity sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw== - -uglify-js@^3.1.4: - version "3.17.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" - integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== - -uint8arrays@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.0.tgz#8186b8eafce68f28bd29bd29d683a311778901e2" - integrity sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog== - dependencies: - multiformats "^9.4.2" - -uint8arrays@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" - integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== - dependencies: - multiformats "^9.4.2" - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -uncrypto@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/uncrypto/-/uncrypto-0.1.3.tgz#e1288d609226f2d02d8d69ee861fa20d8348ef2b" - integrity sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -undici@^5.14.0: - version "5.28.1" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.1.tgz#1052d37bd1a2e8cf3e188d7caebff833fdc06fa7" - integrity sha512-xcIIvj1LOQH9zAL54iWFkuDEaIVEjLrru7qRpa3GrEEHk6OBhb/LycuUY2m7VCcTuDeLziXCxobQVyKExyGeIA== - dependencies: - "@fastify/busboy" "^2.0.0" - -undici@^6.11.1: - version "6.14.1" - resolved "https://registry.yarnpkg.com/undici/-/undici-6.14.1.tgz#e3c9ce906c2e7dddd0d006d7c91a7d8aa1f2890a" - integrity sha512-mAel3i4BsYhkeVPXeIPXVGPJKeBzqCieZYoFsbWfUzd68JmHByhc1Plit5WlylxXFaGpgkZB8mExlxnt+Q1p7A== - -unenv@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.9.0.tgz#469502ae85be1bd3a6aa60f810972b1a904ca312" - integrity sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g== - dependencies: - consola "^3.2.3" - defu "^6.1.3" - mime "^3.0.0" - node-fetch-native "^1.6.1" - pathe "^1.1.1" - -unfetch@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" - integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" - integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== - -unpipe@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -unstorage@^1.9.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.10.2.tgz#fb7590ada8b30e83be9318f85100158b02a76dae" - integrity sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ== - dependencies: - anymatch "^3.1.3" - chokidar "^3.6.0" - destr "^2.0.3" - h3 "^1.11.1" - listhen "^1.7.2" - lru-cache "^10.2.0" - mri "^1.2.0" - node-fetch-native "^1.6.2" - ofetch "^1.3.3" - ufo "^1.4.0" - -untun@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/untun/-/untun-0.1.3.tgz#5d10dee37a3a5737ff03d158be877dae0a0e58a6" - integrity sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ== - dependencies: - citty "^0.1.5" - consola "^3.2.3" - pathe "^1.1.1" - -uqr@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/uqr/-/uqr-0.1.2.tgz#5c6cd5dcff9581f9bb35b982cb89e2c483a41d7d" - integrity sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -use-sync-external-store@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" - integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== - -utf8@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -valtio@1.11.2: - version "1.11.2" - resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.2.tgz#b8049c02dfe65620635d23ebae9121a741bb6530" - integrity sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw== - dependencies: - proxy-compare "2.5.1" - use-sync-external-store "1.2.0" - -web3-utils@^1.3.6: - version "1.10.3" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.3.tgz#f1db99c82549c7d9f8348f04ffe4e0188b449714" - integrity sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ== - dependencies: - "@ethereumjs/util" "^8.1.0" - bn.js "^5.2.1" - ethereum-bloom-filters "^1.0.6" - ethereum-cryptography "^2.1.2" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - utf8 "3.0.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -which@^1.1.1, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -word-wrap@~1.2.3: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== - -wordwrapjs@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" - integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== - dependencies: - reduce-flatten "^2.0.0" - typical "^5.2.0" - -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@7.4.6: - version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - -ws@8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" - integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== - -ws@^7.4.6, ws@^7.5.1: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==